У меня есть один длинный массив, и я пытаюсь понять, как разделить его на два отдельных массива, второй массив имеет правильное содержимое, но первый пуст, я также получаю ловушку прерывания: 6 и я м не уверен, что это значит.
У меня есть массив с именем integerA, который выглядит примерно так:
HELLO:WORLD, я хочу поместить HELLO в отдельный массив (firstA) и WORLD во второйA. Когда я печатаю первый и второй массивы в конце, secondA имеет правильное содержимое, но firstA не вызывает события, хотя я печатаю, чтобы проверить, передаются ли правильные символы, и они -- но firstA все еще пуст, и я Я получаю и прерываю ловушку, которую я не понимаю.
Я только начал изучать 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[entireVar] != ':'
- массив содержит только'\0
, так что это будет зацикливаться навсегда, и произойдет неопределенное поведение. Как определяетсяARRSIZE
? - person KamilCuk   schedule 18.02.2019entireA
не содержит à\n
, это хорошо кончится. Пожалуйста, покажите минимальный воспроизводимый пример, иначе мы не сможем рассказать вам больше. - person Jabberwocky   schedule 18.02.2019