gpt4 book ai didi

c - 不是一切都在它应该在的地方,为什么会出现段错误?

转载 作者:行者123 更新时间:2023-11-30 21:42:27 24 4
gpt4 key购买 nike

这是导致段错误的小代码片段,我不明白为什么......

char *firstName[50];
char *lastName[50];

for (int counter = 0; counter < 10; counter ++) {
fscanf(config, "%s %s\n", firstName[counter], lastName[counter]);

此代码 scanf 配置文件不应该采用第一个和第二个字符串,并将它们分别存储在 firstName[0,1,2.. counter] 和 lastName[counter] 中吗?

最佳答案

这里

char *firstName[50];

firstName50个字符指针的数组,如果你想在每个字符指针中存储任何内容,你需要分配对他们的内存。例如

for (int counter = 0; counter < 10; counter ++) {
firstName[counter] = malloc(SIZE_FIRST); /* memory allocated for firstName[counter], now you can store into it */
lastName[counter] = malloc(SIZE_LAST);
fscanf(config, "%s %s\n", firstName[counter], lastName[counter]);
}

完成firstNamelastName的处理后,释放动态分配的内存以避免内存泄漏。

关于c - 不是一切都在它应该在的地方,为什么会出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53906215/

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