Сегодня я случайно определил двухмерный массив с размером одного измерения, равным 0, однако мой компилятор не жаловался. Я нашел следующее, в котором говорится, что это законно, по крайней мере, в случае gcc:
Однако у меня есть два вопроса об этом использовании:
Во-первых, считается ли это хорошей практикой программирования? Если да, то когда мы должны использовать его в реальном мире?
Во-вторых, массив, который я определил, был двухмерным, с размером 0 для одного измерения. Это то же самое, что одномерный случай? Например,
int s[0]
int s[0][100]
int s[100][0]
Все ли они одинаковы в памяти и для компилятора?
EDIT: Ответ на Greg: Компилятор, который я использую, - gcc 4.4.5. Мое намерение для этой проблемы не зависит от компилятора, однако, если есть какие-то специфические особенности компилятора, которые также были бы полезны:)
Спасибо заранее!