C语言在进行malloc 进行二维分配内存时出现 缓冲区溢出 读取无效数据 的警告

C语言
在进行malloc 进行二维分配内存时出现 缓冲区溢出 读取无效数据 的警告

img

int** creat_and_init_queue(AMGraph* G) {

    int count = G->vex_count;

    int** vexs = (int**)malloc(sizeof(int*) * count);
    if (vexs == NULL) exit(-1);
    for (int i = 0; i < count; i++) {
        vexs[i] = (int*)malloc(sizeof(int));
        if (vexs[i] == NULL) exit(-1);
    }

    return vexs;
}

修改如下,供参考:

int** creat_and_init_queue(AMGraph* G) {

    int count = G->vex_count;

    int** vexs = (int**)malloc(sizeof(int*) * count);
    if (vexs == NULL) exit(-1);
    for (int i = 0; i < count; i++) {
        //vexs[i] = (int*)malloc(sizeof(int));
        vexs[i] = (int*)malloc(sizeof(int) * count);
        if (vexs[i] == NULL) exit(-1);
    }

    return vexs;
}