C中的字符串数组很混乱

时间:2015-01-16 21:51:34

标签: c arrays pointers

我认为C中数组和字符数组的整个概念非常混乱。如果我的推理是正确的,你能告诉我吗?

我有一个像这样的

的数组数组
char * array[2];
for(i=0;i<2;i++)  {
        array[i]=calloc(100,sizeof(char));
    }
array[0] = strcpy(array[0], "blah");
array[1] = strcpy(array[1], "blahblah");

现在我想把这个数组放在struct的字段中(该字段的类型为char **) 我可以这样去吗?

my_struct.array_field = &(array[0])

或者这是一个错误?

1 个答案:

答案 0 :(得分:1)

只需指定array

即可
my_struct.array_field = array  

array已转换为char **

请注意array不是 char 数组的数组,它是指向char的(五个)指针的数组。

不需要

array[0] = strcpy(array[0], "blah");
array[1] = strcpy(array[0], "blahblah");  
除了混乱之外没有伤害。您只需将字符串更改为

即可复制字符串
strcpy(array[0], "blah");
strcpy(array[0], "blahblah");
相关问题