gpt4 book ai didi

c - C 字符串数组内存不足

转载 作者:行者123 更新时间:2023-11-30 15:50:18 24 4
gpt4 key购买 nike

我有一个像这样的字符串数组:

char **strArray;

这个数组已满,我可以通过这种方法打印其内容:

while(*strArray){
printf("%s\n",*(strArray++));
}

这可以正常工作。但是当我使用这个时:

while(*strArray){
process(*(strArray++));
}

我在数组中的第二个字符串上取出内存错误。它针对第一个字符串运行,但在针对第二个字符串时失败。

感谢您的帮助!

<小时/>

处理方法如下:

process(char *line)
{
char *server_id,*delimiter,*outputMessage,*capacity_str;
int capacity;
delimiter = " ";
strtok(line,delimiter);
server_id = (char *)strtok(NULL,delimiter);
capacity_str = (char *)strtok(NULL,delimiter);
capacity = atoi(capacity_str);
curr_server = (server *)malloc(sizeof(server));
curr_server->server_id = server_id;
curr_server->capacity = capacity;
curr_server->full_capacity = 0;
curr_server->next = head_server;
head_server = curr_server;
strcpy(outputMessage , "server added ");
strcat(outputMessage,server_id);
strcat(outputMessage,"~");
strcat(outputMessage,capacity_str);
strcat(outputMessage,"\n");
writeOutput(outputMessage);
}

最佳答案

outputMessage 需要在 strcpy/strcat 之前分配。我很惊讶您遇到内存不足错误,而不仅仅是段错误。

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

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