关于指针的一个小细节---多个指针管理同一块结构时,,,
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;
}
如果有两个指针指向同一个结构,那么用一个指针释放掉这一块存储空间存储的值时,这个指针的值(地址)变成了什么?另外一个指针的值(地址),又变成了什么?还是原来所指向的那个结构的内存地址吗?
#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;
}
如果有两个指针指向同一个结构,那么用一个指针释放掉这一块存储空间存储的值时,这个指针的值(地址)变成了什么?另外一个指针的值(地址),又变成了什么?还是原来所指向的那个结构的内存地址吗?
相关文章推荐
- iOS面试题答案
- Markdown 语法说明
- HDU-3853 LOOPS(概率DP求期望)
- 36. Quartz 2D之渐变和裁剪
- 使用java进行http通信
- 排序
- Scala apply方法
- AndroidStudio项目导入第三方library
- Bzoj 1657: [Usaco2006 Mar]Mooo 奶牛的歌声 单调栈
- GIT命令行的使用
- Linux网络配置
- 深入理解Tomcat系列之一:系统架构
- 理解JNDI中 java:comp/env/jdbc/datasource 与 jdbc/datasource 的不同之处。
- 查看mysql数据库大小、表大小和最后修改时间
- 通过 html5 FileReader 实现上传图片预览功能
- Spring动态连接Mongo(mongo读写分离,连接不同副本集)
- HDU 1017:A Mathematical Curiosity【水】
- 10007---Trail ~ Populating the Data Model
- imageloader
- php初探