tom*_*ies 1 c visual-studio-2010
我使用Visual C++ 2010,我正在尝试使用带有二维数组的free():
#include <stdio.h>
#include <stdlib.h>
#define SIZE 8
int main(){
int **matrix = (int**)malloc(sizeof(int*)*SIZE);
int i;
for(i=0; i<SIZE; i++){
matrix[i] = (int*)malloc(sizeof(int)*SIZE);
}
for(i=0; i<SIZE; i++){
free(matrix[i]);
}
free(matrix);
getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我这样做了吗?
问候.
基本上应该是对的.
顺便说一下,你不需要调用malloc
你想要分配的2d数组的每一行(除非你有特定的理由这样做).
你可以只使用一个malloc
和一个free
:
malloc(sizeof(int*)*ROW_NUM * COL_NUM);
Run Code Online (Sandbox Code Playgroud)
使用单个调用malloc
还可以在内存中连续分配矩阵的元素.