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)?

questionAnswers(4)

yourAnswerToTheQuestion