自由なサイズの配列作成
メモリの確保
ポインタ変数 = malloc(必要なバイトサイズ);
#include <stdlib.h> 必要
プログラム終了まで確保する
メモリの開放
free(ポインタ変数);
メモリリーク防止するため、必ず行う。
int* heap; heap = (int*)malloc(sizeof(int) * 10); if (heap == NULL) exit(0); for (int i = 0; i < 10; i++) { heap[i] = i; } printf("%d\n", heap[5]);
動的配列のサイズ変更
新しいポインタ変数 = realloc(以前のポインタ変数, 必要なバイトサイズ);
何回も呼び出すとフラグメンテーションをおこす。
int* heap; heap = (int*)malloc(sizeof(int) * 10); heap = (int*)realloc(heap, sizeof(int) * 100); free(heap);
ちょこっとメモ