gpt4 book ai didi

c - 填充数组为空 - 中止陷阱 :6

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

我有一个很长的数组,我试图弄清楚如何将它分成两个单独的数组,第二个数组具有正确的内容,但第一个数组是空的,我还得到了一个中止陷阱:6我不确定这意味着什么。

我有一个名为 WholeA 的数组,它看起来像这样:

HELLO:WORLD,我想将 HELLO 放入单独的数组 (firstA) 中,将 WORLD 放入 secondaryA 中。当我在末尾打印第一个和第二个数组时,第二个 A 具有正确的内容,但第一个 A 没有事件,尽管我正在打印以检查是否传递了正确的字符并且它们是 - 但第一个 A 仍然是空的,我我遇到并中止陷阱,我不明白。

我刚刚开始学习 C,为什么第一个数组为空,错误是什么意思?

#define ARRSIZE 10000

char entireA[ARRSIZE] = "";
char firstA[ARRSIZE] = "";
char secondA[ARRSIZE] = "";

strcpy(entireA,"HELLO:WORLD\n");

int firstVar = 0;
int entireVar = 0;
while(entireA[entireVar] != ':') {
if(entireA[entireVar] == ';') {
break;
}
printf("%c \n",entireA[entireVar]);
firstA[firstVar] = entireA[entireVar];
firstVar++;
entireVar++;
}
firstA[firstVar] = '\0';

int secondVar = 0;
entireVar++; //skip ':'
while(entireA[entireVar] != '\n') {
secondA[secondVar] = entireA[entireVar];
secondVar++;
entireVar++;
}
secondA[secondVar] = '\0';

printf("%s", firstA);
printf("%s", secondA);

最佳答案

您发布的代码没有任何问题。

执行后,变量具有以下值:

entireA 0x02efcdb4 "HELLO:WORLD\n"  char[0x00002710]
entireVar 0x0000000b int
firstA 0x02efa69c "HELLO" char[0x00002710]
firstVar 0x00000005 int
secondA 0x02ef7f84 "WORLD" char[0x00002710]
secondVar 0x00000005 int

无论您的问题是什么,它很可能与您的环境有关。我建议将 ARRSIZE 的值减少到 80 个字符,然后看看这是否会改变您的结果。

关于c - 填充数组为空 - 中止陷阱 :6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54753667/

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