我似乎在为我的阵列正确分配内存时遇到问题。该方法按预期返回,但运行时异常正在终止程序。
我在使用调试器时遇到了这个异常。
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;
}
correctLine
当您到达 时j == i
,您正在访问数组外部,因为中的最后一个有效索引correctLine
是j-1
。改变
while(j<=i){
至
while(j<i){
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句