C 分配字符数组导致错误访问运行时异常

Voxorin

我似乎在为我的阵列正确分配内存时遇到问题。该方法按预期返回,但运行时异常正在终止程序。

我在使用调试器时遇到了这个异常。

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您正在访问数组外部,因为中的最后一个有效索引correctLinej-1改变

while(j<=i){

while(j<i){

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 C 中访问越界数组不会出现运行时错误

数组的运行时分配(C ++,FMX)

C:运行时出现“访问冲突”错误

从逆序C ++访问向量时发生运行时错误

C字符串裁剪运行时错误

具有类型推导的C ++ / CLI静态对象导致未处理的运行时异常

如何在C程序(不是C ++)中处理运行时内存分配错误的指针错误?

总线错误c ++使用小数组正确运行,使用大数组运行时错误

为什么将C字符串作为char *传递给函数会导致运行时错误(但将定义为char []的C字符串传递是可以的)?

统一初始化导致C ++中的运行时错误

运行时struct c数组的大小

是否可以在运行时为C中的字符串分配正确的空间量?

C#运行时错误

代码C ++中的运行时错误

for循环的C运行时错误

C ++中运行时的分段错误

C中奇怪的运行时错误?

C ++中的运行时错误

C ++代码中的运行时错误

指向指针的ANSI C内存分配引发非致命的运行时错误

C运行时错误:在For循环中动态分配内存

(在C中)使用数组实现堆栈-将数组大小加倍时出现运行时错误

在C#中,如何访问在运行时创建的控件标签数组的元素?

ASP.NET-C#反射:在运行时,AddObject导致“模棱两可的匹配找到异常”

leetcode88。合并排序数组c ++运行时错误

C结构的动态数组,没有错误,程序在运行时终止

递归中的运行时内存错误,在C ++中用字符函数替换空白

WebKit.NET与C#项目运行时异常

位置2 C#运行时异常无行