”悬空指针“的怪异现象!!-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

”悬空指针“的怪异现象!!

2016-06-07 19:13:50 1620 1

看起来有问题,但是运行起来却没有问题,
/我的代码/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    char *p = NULL;
    p = ( char * )malloc( 4 * sizeof( char ) );
    free( p ); /****这里已经释放了p指向的内存块****/
    strcpy( p, "abc" );
    printf( "%s\n", p );
    retrun 0;
} 

/*free( p )释放了p指向的内存块,但是并没有改变p本身。于是产生了悬空指针,此时
p不再指向有效的内存块,strcpy函数修改了p指向的内存块,却没有造成程序崩溃,为啥? *不科学啊?/
本人再Mac OS X 10.9上编译,运行却没有出错。求解释》》》!!!

取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:30:48
    char *p = NULL;    // 声明p 并赋值NULL
    p = ( char * )malloc( 4 * sizeof( char ) );   // p的值现在是一个内存地址
    free( p );  // p的值所表示的那块内存被释放
                // 释放的意思是标记为空闲,可利用的,下次再malloc的时候可以用这块内存
                // 但是p现在的值,根!本!没!变!还是原来那个内存地址
    strcpy( p, "abc" ); // 把"abc" 拷贝到p指向的区域,p还指着那块内存
                        // 只要这块内存没被再次分配,万事大吉~
                        // 如果别的程序正在用这块内存,或者你的程序其他地方用到了这块内存
                        // (你不是释放了嘛,操作系统当然可以重新分配)
                        // 恭喜你,要出问题了,出啥问题?我也不知道。。。取决于程序是怎么用这块内存的 
             // 要我举例? 好吧,比如浏览器用包含这4个字节的一块内存区域存放一张图片
             // 那么图片中这几个字节就被你改写了,图片可能就花了。或者显示不出来了。。
    0 0
相关问答

1

回答

sdk调用抱错 Function with http trigger(name: http-tes

2022-10-20 16:19:42 499浏览量 回答数 1

1

回答

MSE 不能被其他VPC的ECS ping通吗?

2022-09-09 09:41:49 227浏览量 回答数 1

0

回答

参照官网ceph 手动部署,初始化多mon 节点,ceph -s 挂死, 而初始化单节点则立马返回

2022-06-27 20:05:30 94浏览量 回答数 0

0

回答

SpringBoot 2.2.2:用于自定义分页的Jackson序列化器不起作用

2019-12-19 16:00:41 536浏览量 回答数 0

1

回答

阿里云轻量级服务器,也就是docker,我该如何才能把http服务端口暴露在公网中呢?使用哪个端口

2019-07-24 15:35:45 1002浏览量 回答数 1

2

回答

绑定邮箱显示此域名已被使用,请输入其他域名。

2019-05-02 13:36:28 476浏览量 回答数 2

0

回答

FLASH播放器,在IE浏览器下显示请确定您的域名已完成备案和CNAME绑定

2018-08-14 14:45:27 272792浏览量 回答数 0

1

回答

求只能英文与汉字的正则,不能有其他的字符,包括空格

2016-06-06 10:21:24 1646浏览量 回答数 1

1

回答

html为 iframe子页面 弹出窗口 指定显示位置

2016-03-12 09:09:07 2312浏览量 回答数 1

2

回答

php中的register_shutdown_function和fastcgi_finish_request的应用场景是什么?

2016-01-14 05:38:56 2576浏览量 回答数 2
+关注
文章
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载