我發現這個錯誤有很多線程,但一直無法找到適合我的解決方案。我試圖從PGM圖像讀取數據並將其放入矩陣中。我的問題是內存重新分配失敗,出現錯誤realloc: invalid old size
。下面是代碼的摘錄,顯示了重新分配的方式。realloc:無效的舊尺寸
typedef struct num_matrix {
int ** data;
int rows;
int cols;
} matrix;
[in loadPGMImageFromFilename]
matrix m;
m.data = (int**)malloc(0*sizeof(int));
loadPGMImageData(m);
[in void loadPGMImageData(matrix &m)]
ss >> m.rows >> m.cols; // <- sets rows and cols, seems to work
allocateMatrixMemory(m);
void allocateMatrixMemory(matrix &m) {
int** temp = (int**) realloc(m.data, m.rows*sizeof(int)); // <- ERROR
//more stuff
}
'(int **)malloc(0 * sizeof(int));'?這是故意的嗎? –
是[tag:c] ?? ... – LPs
'ss >> m.rows >> m.cols;'那該做什麼或做什麼? –