関数を呼び出した後、動的に割り当てられたメモリのポインターは何を指しますかfree()
。ポインターは NULL を指していますか、それとも解放前に指していたのと同じ場所を指していますか。free() の実装には、これに関する何らかの標準があるか、プラットフォームごとに異なる方法で実装されていますか。
uint8_t * pointer = malloc(12);
printf("%p", pointer); // The current address the pointer points to
free (pointer);
printf("%p", pointer); // must it be NULL or the same value as before ?
編集: printf が同じ結果を生成することはわかっています。異なる実装でそれを当てにできるかどうかを知りたいだけです。