[英]Freeing the memory - two dimensional array
我使用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;
}
我這樣做對嗎?
問候。
基本上應該是對的。
順便說一句,您不需要為要分配的2d數組的每一行調用malloc
(除非您有特定的原因要這樣做)。
您只能使用一個malloc
和一個free
:
malloc(sizeof(int*)*ROW_NUM * COL_NUM);
使用單個調用malloc
還具有在內存中連續分配矩陣元素的好處。
看起來像它。 雖然可以,而且也應該(出於效率目的)做一個malloc和一個免費如圖所示這里
如果您不需要顯式地使用C語言,那么值得一看的是為您處理內存的向量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.