Код: Выделить всё
#include <stdio.h>
int main () {
int j= 4;
int h [j];
return 0;
}
а эта нет
Код: Выделить всё
#include <stdio.h>
int j= 4;
int h [j];
int main () {
return 0;
}
Комментировать не стал, всё ясно, как день, по моему. Во втором случае машина выдаёт информацию variably modified ‘h’ at file scope.
Всё же правильно вроде... Ну пусть во втором случае массив объявлен глобальным, ну и что?
Переменная j заранее ведь определена. И синтаксис соблюдён. И вот ещё: чем таким принципиальным отличается вторая программа от третьей?:
Код: Выделить всё
#include <stdio.h>
int h [4];
int main () {
return 0;
}
Третья-то работает. В дебри, наверное, влазить надо... Надеюсь на помощь. C уважением promov.
Или так: в языке C существует правило- массив неопределённой длины не может быть глобальным. Если бы кто-нибудь указал мне на место где это правило* прописано я был бы ему очень благодарен.
*само собой это не разумеется.