私は24 byte
の大きさと、そのような配列を持っています。そして、私は、配列の各要素に\0
を割り当てることによって、メモリからこの配列をクリアしてみてくださいchar *のメモリ配列を消去するには?
char* arr[3] = {"CERN", "0", "ALK"};
printf("%ld\n", sizeof(arr));
:
for (size_t i = 0; i < sizeof(arr)/ sizeof(char*); ++i) {
arr[i] = '\0';
}
しかし、私が確認したいとき配列のサイズは、それでも私を与える24 byte
:
printf("%ld\n", sizeof(arr));
> 24
これを完全にクリアする方法メモリからの返り値sizeof(arr)
は0
になるでしょうか?
これは静的な配列なので、変数をメモリから削除することはできません... – m13r
'sizeof(arr)/ sizeof(char *);' - > 'sizeof(arr)/ sizeof(arr [0]); ' – LPs
'arr [i] =' \ 0'' - >' arr [i] = NULL' – LPs