您的位置:首页 > 其它

关于指针的一个小细节---多个指针管理同一块结构时,,,

2016-03-27 21:26 267 查看
如果有两个指针指向同一个结构,那么用一个指针释放掉这一块存储空间存储的值时,将这一块存储空间还给内存时,还能通过另外一个指针访问吗?------不能!!!

#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;

}



如果有两个指针指向同一个结构,那么用一个指针释放掉这一块存储空间存储的值时,这个指针的值(地址)变成了什么?另外一个指针的值(地址),又变成了什么?还是原来所指向的那个结构的内存地址吗?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: