int * foo()
{
int b=8;
int * temp=&b;
return temp;
}
У меня есть несколько вопросов,Возврат по адресу
- В какой части макета памяти делает * р подарок.
- Я копирую локальный адрес переменной в указатель temp без выделения памяти. Но даже тогда он сохраняет адрес локальной переменной, как это возможно?
- Программа отлично работает для меня, когда я разыгрываю ее (локальная переменная определенно не будет там), почему я получаю значение по-прежнему.
Действительно ничего не понимает. Может кто-нибудь объяснить все мои вышеперечисленные вопросы в деталях.
Вы по-прежнему возвращаете указатель на локальную переменную 'b', которая ведет к блуждающему указателю и, вероятно, неопределенному поведению. –
Что такое * p? И можете ли вы опубликовать весь свой код здесь? –