网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月02日漏签0天
c语言吧 关注:801,933贴子:4,377,444
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 17回复贴,共1页
<<返回c语言吧
>0< 加载中...

指针问题

  • 只看楼主
  • 收藏

  • 回复
  • urmterfuok2
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
char buf[20] = "stupidme";
char *p
p = buf[20];
free(p);
printf("%s\n",buf);
为什么把p的内存free了以后
printf还能输出正确的buf呢?
如果我想把p指针释放之后
stupidme这字符串也释放掉(也就是printf出错)
要怎么修改呢?


  • Sunchy321
  • 圆の帝球
    16
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
UB什么事情都可能发生。


2026-05-02 21:07:11
广告
不感兴趣
开通SVIP免广告
  • urmterfuok2
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include<string.h>
int main(int argc, char *argv[]) {
char buf[20]="stupid";
char *p;
printf("buf: %s\n",buf);
p = buf;
printf("p: %s\n",buf);
free(p);
printf("buf: %s\n",buf);
//return 0;
}
========================================
console
========================================
buf: stupid
p: stupid
buf: stupid


  • yyb518888888
  • 麻婆豆腐
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼主好消极。。。为什么是stupidme。。。


  • urmterfuok2
  • 便当
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
已解决~


  • 1007582017
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这样编译器没报错真是叼,至少free的参数应该是个指针,


  • 1007582017
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这样编译器没报错真是叼,至少free的参数应该是个指针,


  • XxHan涵
  • 麻婆豆腐
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
帮顶


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 17回复贴,共1页
<<返回c语言吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示