Почему не присваивается значение к указателю?

#include <iostream>
int* a = new int;
*a = 4;  //ошибка
int main()
  {
   system("pause");
  }

Но если занести присвоение *a = 4 в функцию,то нет ошибки,почему?


Ответы (1 шт):

Автор решения: Harry

Программа начинается с выполнения main, так ведь? Так когда должно выполняться ваше присваивание?

Но вы можете выполнять до main инициализацию объявленных глобальных переменных, этот код (если таковой подразумевается конструктором) будет выполнен.

В вашем случае достаточно превратить присвоение в инициализацию - легким движением руки:

int * a = new int(4);
→ Ссылка