gpt4 book ai didi

c - C中的字符串数组非常困惑

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:05 24 4
gpt4 key购买 nike

我认为 C 中数组和字符数组的整个概念相当困惑。你能告诉我我的推理是否正确吗?

我有一个像这样的 char 数组

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");

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

my_struct.array_field = &(array[0])

还是错了?

最佳答案

只需分配数组

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");

关于c - C中的字符串数组非常困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27993360/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com