class Node{
Node* next;
Node():Node(NULL){};
};
Node* p = new Node;
p->next = new Node;
Node* q = p->next'
①delete p; // p的值不变,但p指向的next值被修改成垃圾数据, p->next指向的对象没有修改
// p =NULL;
②delete p->next; // p->next的值不变
指针不变,堆中的数据被修改成垃圾数据。对否?
但我看stackoverflow上说堆中的对象数据也有可能不会被改变,这是操作系统的原因吗?
好像是编译器的原因
VC6 指针不会改变
VS2013 指针改变
æè°åæ¶ï¼å ¶å®åªæ¯åè¯ç³»ç»è¿åå åå¯ä»¥è¢«éæ°åé ãä½éé¢çå¼ä¸ç¡®å®æ¯å¦ä¼ä¿®æ¹ãæå¨VS2013æµè¯çæ¶åæ¯ä¼è¢«ä¿®æ¹ç