首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Y处修改的X堆块,请求的大小为2

在Y处修改的X堆块,请求的大小为2
EN

Stack Overflow用户
提问于 2013-11-25 19:35:04
回答 1查看 1.9K关注 0票数 0

因此,在以下代码的末尾,我得到了一个我完全不理解的错误:

代码语言:javascript
复制
    char* registerPointer = NULL;
    // parse the currentLine
    char** rt_rs_immediate;
    rt_rs_immediate = malloc(3 * sizeof(char*));
    if (rt_rs_immediate == NULL ) {
        fprintf(outputFilePointer, "no more memory");
        exit(1);
    }

    for (int i = 0; i < 3; i++) {
        rt_rs_immediate[i] = malloc(2 * sizeof(char));
        if (rt_rs_immediate[i] == NULL ) {
            fprintf(outputFilePointer, "no more memory");
            exit(1);
        }
    }

    int indexWithin_rt_rs_immediate = 0;
    registerPointer = strtok(currentLine, " $,\n\t");
    while (registerPointer != NULL ) {
        if (registerPointer == NULL || *registerPointer == '#') {
            break;
        } else {
            strcpy(rt_rs_immediate[indexWithin_rt_rs_immediate],
                    registerPointer);
            indexWithin_rt_rs_immediate++;
            registerPointer = strtok(NULL, " $,\n\t");
        }
    }
    free(registerPointer);

    // write to outputFile
    int immediate = atoi(rt_rs_immediate[2]);
    writeOutI_TypeInstruction(I_TypeInstruction, rt_rs_immediate[1],
            rt_rs_immediate[0], immediate, outputFilePointer);
    // free pointers created with malloc
    for (int i = 0; i < 3; i++) {
        free(rt_rs_immediate[i]); //<====================ERROR HERE!!!!!
    }
    free(rt_rs_immediate);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-25 19:43:32

while循环在regsiterPointerNULL时终止。您可能希望检查该循环,因为您只有三个指针分配给rt_rs_immediate。如果您试图通过该循环中的三个指针,这可能会导致错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20201677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档