私は何かから混乱しています。
最初:
int *ptr;
ptr = malloc(10 * sizeof(int));
このタイプは、配列のようにコンパイル時にではなく、実行時に動的 (ヒープ) メモリを取得します。
malloc()
記憶がない場合は返却NULL
する場合があります。
そしてNULL
、#define
標準 C ライブラリにある#define NULL ((void *)0)
したがって、malloc
戻り値NULL
が実行時に実行される場合、コンパイラがどのように置換NULL
するか、void *0
およびテキスト置換がプリコンパイル段階で発生することがわかっています