Как распределяется память для неявно определенного многомерного массива в C99?

Я пытаюсь написать программу на C99, и у меня есть массив строк, неявно определенных как таковые:

char *stuff[] = {"hello","pie","deadbeef"};

Поскольку размеры массива не определены, сколько памяти выделяется для каждой строки? Все ли строки выделены таким же количеством элементов, как самая большая строка в определении? Например, будет ли следующий код эквивалентен неявному определению выше:

char stuff[3][9];
strcpy(stuff[0], "hello");
strcpy(stuff[1], "pie");
strcpy(stuff[2], "deadbeef");

Или каждой строке выделяется только объем памяти, который ей необходим во время определения (т.е.stuff[0] содержит массив из 6 элементы,stuff[1] содержит массив из 4 элементы иstuff[2] содержит массив из 9 элементы)?

Ответы на вопрос(4)

Ваш ответ на вопрос