Объявление массива и печать [BUG?] - PullRequest
0 голосов
/ 03 марта 2019

это может быть нубский вопрос, но все же я так растерялся, почему это происходит.Так что этот код работает просто отлично:

int *m,g;
    g=1;
    m[0]=1;
    cout<<m[0];

, и этот сообщает об ошибке:

int *m;
    m[0]=1;
    cout<<m[0];

Может ли это быть ошибкой?

1 Ответ

0 голосов
/ 03 марта 2019

Вы используете неинициализированный массив и пытаетесь получить к нему доступ, вызывая неопределенное поведение

в соответствии со стандартом

Если для объекта не указан инициализатор, объектинициализируется по умолчанию.Когда получено хранилище для объекта с автоматической или динамической продолжительностью хранения, объект имеет неопределенное значение, и если для объекта не выполняется инициализация, этот объект сохраняет неопределенное значение до тех пор, пока это значение не будет заменено ... Если неопределенное значениеВ результате оценки поведение не определено.

. Вы должны выполнить инициализацию следующим образом:

int *m=new int[size_you_want_give_to]

например

int *m=new int[5]; // array of 5 elements 
...