c - How table of strings works? -
i searching code didn't believe works, found in books table of strings exists in compiler.
char *p; p = "something"; printf("%s", p);
how code works ?
"something"
string literal, null-terminated character array stored in read-only memory. p
pointer char. since set pointer point @ read-only memory, should declare const char*
.
sizeof(p)
gives size of p. p
pointer size of pointer, 4 bytes on specific system.
had instead declared array char arr[] = "something";
have gotten copy of stored in local array, can modify it. , if take sizeof array, expected size. in array case sizeof(arr)
give 9+1=10 bytes.
for reference, please read:
what difference between char s[] , char *s?
why segmentation fault when writing string initialized "char *s" not "char s[]"?
Comments
Post a Comment