Я считаю, что в объявлении массива, мы не можем указать размер его как этогоПочему int c [0] разрешен в C++?
int a[0];
Я знаю, массив пустого размера незаконен в C++, но в моем коде, пустой составитель массив допустимого размера и дать выход.
Мой код здесь:
#include <iostream>
using namespace std;
int main()
{
int a[0];
a[0] = 10;
a[1] = 20;
cout<<a[0]<<endl;
cout<<a[1]<<endl;
return 0;
}
Выход:
10
20
Интернет ссылка составитель: http://code.geeksforgeeks.org/TteOmO
Итак, мой вопрос, Почему int a[0]
разрешено GCC компилятор?
Выполнение 'int a [0]; a [0] = 10; a [1] = 20; 'приведет к FireWorks (UB). – sameerkn
OP знает, что это неправильно, вопрос в том, почему компилятор не вызывает ошибку. Ответ на который, я полагаю, состоял бы в том, что он не может сделать все для вас;) – slawekwin
'ошибка: ISO C++ запрещает массив нулевого размера 'a' [-Wpedantic] int a [0];' – Praveen