C语言中怎么用数组接收多个字符串

#include

int main() {

char *colour[5];

colour[0] = "red";
colour[1] = "yellow";
colour[2] = "green";
colour[3] = "blue";
colour[4] = "pink";

return 0;

}

//请问这种方法对不对?
//如果想用键盘输入(scanf),该怎么定义?

 #include <stdio.h>
#include <stdlib.h>

int main()
{
    char ** color = (char **)malloc(5 * sizeof (char *));
    for (int i = 0; i < 5; i++)
    {
        color[i] = (char *)malloc(100 * sizeof (char));
        scanf("%s", color[i]);
    }
    for (int i = 0; i < 5; i++)
        printf("%s", color[i]);
}
 char colour[5][];

你的写法也就可以的,即使用:指针数组。colour 的每个元素都是指针,没有问题。