设置值时出现C ++访问冲突错误

时间:2015-10-07 22:23:45

标签: c++ malloc access-violation

有人可以向我解释为什么这个代码在最后一行运行时会出现访问冲突错误,但是当h_A [0]设置为100时却没有?

for (name in groups) {
    group = groups[name];
    if (group.length == 0) {
        console.log("skip: " + name);
        continue; // no items
    }
    console.log(name); // A while Ago, Last Month, etc
    for (var i = 0; i < group.length; i++) {
        // 8 : record 8 : 8/1/2015
        console.log(group[i].id + " : " + group[i].name + " : " + group[i].date_time);
    }
}

错误是:

  

Test.exe中0x01079554处的未处理异常:0xC0000005:访问冲突写入位置0x00000000。

编辑:

感谢@owacoder

,这是解决方案
int nx = 16384;
int ny = 16384;
int nxy = nx*ny;
int nBytes = nxy * sizeof(int);

int *h_A;
h_A = (int *) malloc(nBytes);
h_A[0] = 100;

int *h_B;
h_B = (int *) malloc(nBytes);
h_B[0] = 100;

1 个答案:

答案 0 :(得分:5)

第二次分配失败,而第一次没有失败。 (即malloc返回NULL,内存不足)您应该对代码中的内存不足情况进行错误检查。