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