gpt4 book ai didi

c - 字符串数组

转载 作者:行者123 更新时间:2023-11-30 16:02:19 25 4
gpt4 key购买 nike

我有一个有趣的问题。

我定义,

typedef char *string;

char array[10];
string buf[10];
i=0;
while(1){
array=<assign_string>
buf[i]= array;
i++;
}

在每次迭代中我分配不同的字符串。例如,buf[0] 应该是“1111111111”buf[1] 应该是“2222222222”等等。但是,当我在 i=1 时分配“2222222222”时,buf[0] 也会更改为“2222222222”。可能是什么问题呢?

最佳答案

问题是 buf 中的所有条目都指向同一个字符串 - 名为 array 的字符串。因此更改 array 将影响所有 buf 条目。

您可以通过为每次迭代分配一个新字符串来解决此问题,例如你的伪代码将变成:

string buf[10];  
i=0;
while(1){
buf[i]= strdup( <array_string> );
i++;
}

使用完所有字符串后,请务必free()释放它们。

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

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