Ich habe so Array mit einer Größe von 24 byte
:Wie im Speicher Array von char * löschen?
char* arr[3] = {"CERN", "0", "ALK"};
printf("%ld\n", sizeof(arr));
Dann versuche ich aus dem Gedächtnis dieses Array zu löschen, indem \0
zu jedem Element des Arrays zuweisen:
for (size_t i = 0; i < sizeof(arr)/ sizeof(char*); ++i) {
arr[i] = '\0';
}
Aber wenn ich will das überprüfen Größe des Arrays, gibt es mir noch 24 byte
:
printf("%ld\n", sizeof(arr));
> 24
Wie völlig klar, dass dies ein aus dem Speicher rray, sizeof(arr)
würde 0
geben?
Da dies ein statisches Array ist, können Sie die Variable nicht aus dem Speicher entfernen ... – m13r
'sizeof (arr)/sizeof (char *);' -> 'sizeof (arr)/sizeof (arr [0]); ' – LPs
' arr [i] = '\ 0'' -> 'arr [i] = NULL' – LPs