где находятся переменная в стеке или в куче?
ребята , не пинайте строго. вопрос дилетанта. Если я не пользую маллок, а просто тупо таким образом инициализирую jjj, тогда где хранятся a и b для jjj в куче или в стеке ?
typedef struct {
int a;
int b;
} myStruct;
int main(int argc, char* argv[])
{
myStruct* jjj;
jjj->a = 777;
jjj->b = 111;
return 0;
}
Ответы (2 шт):
Автор решения: gbg
→ Ссылка
Нигде. Потому что на данный момент, указатель jjj никак не инициализирован. Программа упадет на 2 строчке.
Автор решения: Harry
→ Ссылка
Формально - по адресу, хранящемуся в jjj. Но какой там адрес хранится - никто ничего не скажет, потому что это неинициализированная локальная переменная.
Так что адрес может быть каким угодно, только вот с огромной вероятностью - таким, куда писать/читать нельзя. Тогда ждет аварийный останов программы.
Вот так - совсем другое дело:
myStruct* jjj = new myStruct;
jjj->a = 777;
jjj->b = 111;