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