W jaki sposób pamięć jest przydzielana dla niejawnie zdefiniowanej tablicy wielowymiarowej w C99?
Usiłuję napisać program C99 i mam tablicę ciągów niejawnie zdefiniowanych jako takie:
char *stuff[] = {"hello","pie","deadbeef"};
Ponieważ wymiary tablicy nie są zdefiniowane, ile pamięci jest przydzielane dla każdego łańcucha? Czy wszystkie ciągi mają taką samą liczbę elementów, jak największy ciąg w definicji? Na przykład, czy poniższy kod byłby równoważny powyższej definicji ukrytej:
char stuff[3][9];
strcpy(stuff[0], "hello");
strcpy(stuff[1], "pie");
strcpy(stuff[2], "deadbeef");
Lub też każdy ciąg przypisany jest tylko ilości pamięci, której potrzebuje w momencie definicji (tj.stuff[0]
posiada tablicę6 elementy,stuff[1]
posiada tablicę4 elementy istuff[2]
posiada tablicę9 elementy)?