Я новичок в С++ и у меня есть один вопрос к глобальным переменным. Я вижу во многих примерах, что глобальные переменные — это указатели с адресами кучи. Таким образом, указатели находятся в памяти для глобальных/статических переменных, а данные за адресами находятся в куче, верно?
Вместо этого вы можете объявить глобальные (без указателя) переменные, в которых хранятся данные. Таким образом, данные хранятся в памяти для глобальных/статических переменных, а не в куче.
Есть ли у этого решения недостатки по сравнению с первым решением с указателями и кучей?
Изменить:
Первое решение:
//global
Sport *sport;
//somewhere
sport = new Sport;
Второе решение:
//global
Sport sport;