如果有两个指针指向同一个结构,那么用一个指针释放掉这一块存储空间存储的值时,将这一块存储空间还给内存时,还能通过另外一个指针访问吗?------不能!!!
#include<stdio.h>
#include<stdlib.h>
typedef struct Node *House;
struct Node {
int data;
};
int main ( void )
{
House H = NULL;
House tempcell = ( House ) malloc ( sizeof ( struct Node ) );
tempcell->data = 9;
H = tempcell;
House fuck = H;//多个指针存储的地址是同一个结构的所在地址。
printf("%d %d", H->data, fuck->data );
puts("\n");
free( fuck );
printf("%d %d", H->data, fuck->data );// 打印出奇怪的数字出来了,不知道访问了哪里的数据。
return 0;
}
如果有两个指针指向同一个结构,那么用一个指针释放掉这一块存储空间存储的值时,这个指针的值(地址)变成了什么?另外一个指针的值(地址),又变成了什么?还是原来所指向的那个结构的内存地址吗?
本文深入探讨了当两个指针指向同一结构时,使用其中一个指针释放该内存空间后,是否还能通过另一个指针访问该结构,并详细解释了释放内存后指针地址的变化情况。
6682

被折叠的 条评论
为什么被折叠?



