我认为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])
或者这是一个错误?
答案 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");