제발 내가 잘못 가고있다, 제발 아래에 내 코드를 삭제하거나 x를 해방하기 전에 잘 작동하지만 x를 삭제 한 후 코어 덤프 보여줍니다. 나는 이유를 모른다. 내가 한 것은 힙에 2 개의 변수를 새로운 키워드로 할당했지만 p = x는 p가 이제 x의 주소를 보유한다는 것을 의미합니다. 그때 나는 p를 풀고 마침내 나는 x를 풀어 버린다. 내가 잘못 가고있는 곳에서 도와주세요.포인터 동적 할당 (핵심 덤프)
#include <iostream>
using namespace std;
int main(){
int a;
int *b=&a;
cout<<b<<endl;//address of a
int *x=new int;
cout<<x<<endl;
cout<<*x<<endl;
int *p=new int;
*x=10;
*p=12;
p=x;
cout<<p<<endl;
cout<<x<<endl;
cout<<*p<<endl;
cout<<*x<<endl;
*x=13;
cout<<*p<<endl;
delete p;
*x=14;
cout<<*x<<endl;
cout<<*p<<endl;
delete x;
return 0;
}
그래서 p, * x = 14 및 cout << * x를 삭제 한 후에 문제가 없습니까? 그것은 삭제됩니다 P는 ....? – user3215228
@ user3215228 정의되지 않은 동작은 정의되지 않았습니다. 아무거나 일어날 수있다. –
@ user3215228 내 업데이트 된 게시물보기. –