Почему не присваивается значение к указателю?
#include <iostream>
int* a = new int;
*a = 4; //ошибка
int main()
{
system("pause");
}
Но если занести присвоение *a = 4 в функцию,то нет ошибки,почему?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Программа начинается с выполнения main, так ведь? Так когда должно выполняться ваше присваивание?
Но вы можете выполнять до main инициализацию объявленных глобальных переменных, этот код (если таковой подразумевается конструктором) будет выполнен.
В вашем случае достаточно превратить присвоение в инициализацию - легким движением руки:
int * a = new int(4);