我正在使用 Valgrind 调试我的 c 程序。我收到的错误是:
==2765== 8,000 bytes in 2 blocks are definitely lost in loss record 1 of 1
==2765== at 0x4C274A8: malloc (vg_replace_malloc.c:236)
==2765== by 0x404123: main (mycode.cpp:352)
这是第 352 行附近的代码:
int **matrix;
matrix = (int**)malloc(2*sizeof(int*));
for (i=0; i<2; i++){
matrix[i] = (int*)malloc(size*sizeof(int)); //line 352
}
for (i=0; i<2; i++){ //inizialization
for (k=0; k<size; k++)
matrix[i][k] = 0;
}
这是我为矩阵分配内存的方式。这有什么问题?
更新:在程序结束时,我使用了:
free(matrix);