当我打印数组的内容时,它似乎会使用最后输入的命令覆盖每个元素:
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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)