我似乎无法正确地为数组分配内存。该方法将按预期返回,但是运行时异常将终止程序。
使用调试器时出现此异常。
EXC_BAD_ACCESS (code=1, address=0x0)
这是导致问题的方法:
char *progScanner(char *line){
char originalLine[100];
strcpy(originalLine, line);
char *correctLine[100];
char *segment;
int i = 0;
segment = strtok(originalLine," ,()");
while (segment != NULL){
printf (" %s",segment);
correctLine[i++] = segment;
segment = strtok (NULL, " ,()");
}
char *newLine;
newLine = malloc(100 * sizeof(char));
int j = 1;
strcpy (newLine, correctLine[0]);
while(j<=i){
strcat(newLine, correctLine[j]);
j++;
}
return newLine;
}
答案 0 :(得分:0)
当您进入correctLine
时,您正在访问j == i
数组之外,因为correctLine
中的最后一个有效索引是j-1
。更改
while(j<=i){
到
while(j<i){