#include <stdlib.h>
int main(){
/*一維陣列*/
int size1=1000;
int *array1;
// 利用 malloc 配置空間 。
array1 = (int*) malloc(size1 * sizeof(int));
// 利用 calloc 配置空間,會初始為 0 。
array1 = (int*) calloc(size1 , sizeof(int));
// 利用 realloc 將原本的空間調整成兩倍,並且複製原本的內容,
// 但不保證是原本的空間位址。
array1 = (int*) realloc(array1, 2 * size1 * sizeof(int));
// 釋放記憶體空間。
free(array1);
/*二維陣列*/
int i;
int size_x=100;
int size_y=100;
int **array2;
// 利用 malloc 配置二維空間 。
array2 = (int**) malloc(size_x * sizeof(int*));
for (i=0; i<size_x; i++){
array2[i] = (int*) malloc(size_y * sizeof(int));
}
// 釋放記憶體空間
for (i=0; i<size_x; i++){
free(array2[i]);
}
free(array2);
return 0;
}
參考來源:
Standard C Memory [C++ Reference]
0 回應:
張貼留言