gpt4 book ai didi

c - 数组只添加重复值

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:10 25 4
gpt4 key购买 nike

当我打印数组的内容时,它似乎用最后输入的命令覆盖了每个元素:

typedef struct
{
int argc;
char* argv[10;
char* myArray[80];
size_t size;

} Command;

内部主要:

Command cmd;

cmd.myArray[cmd.size++] = buffer;

(缓冲区是我用 printf 检查过的用户输入,以确保它存储的是正确的东西)

函数:

void myFunction(const Command* cmd)
{
for (size_t i = 0; i < (cmd->size)-1; ++i)
{
printf("%s\n", cmd->myArray[i]);
}
}

如有任何帮助,我们将不胜感激。

最佳答案

您将 myArray 的每个元素设置为相同的东西,buffer。您需要复制它以获得不同的值:

char *temp = malloc(strlen(buffer)+1);
strcpy(temp, buffer);
cmd.myArray[cmd.size++] = temp;

关于c - 数组只添加重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21299343/

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