Как распределяется память для неявно определенного многомерного массива в 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 элементы)?