| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 498 人关注过本帖
标题:[求助]内存分配问题
收藏  订阅  推荐  打印 
overcome
Rank: 1
等级:新手上路
帖子:17
积分:270
注册:2007-3-11
[求助]内存分配问题

以下两个程序输出的结果为何不一样:请指点一二

程序1:
#include<iostream.h>
#include<string.h>
#include<malloc.h>
void main()
{
char *pstr;
pstr=(char *)malloc(100);
strcpy(pstr,"hello");
//cout<<pstr<<endl;
free(pstr);
if(pstr!=NULL)
{
strcpy(pstr,"world");
}

cout<<pstr<<endl;
}


程序2:
#include<iostream.h>
#include<string.h>
#include<malloc.h>
void main()
{
char *pstr;
pstr=(char *)malloc(100);
strcpy(pstr,"hello");
cout<<pstr<<endl;
free(pstr);
if(pstr!=NULL)
{
strcpy(pstr,"world");
}

cout<<pstr<<endl;
}

搜索更多相关主题的帖子: 内存  pstr  分配问题  include  
2007-11-15 14:19
PcrazyC
Rank: 12Rank: 12Rank: 12
等级:版主
威望:28
帖子:5631
积分:57645
注册:2006-10-20

觉得这种错误的程序还是不要讨论的好.

雁无留踪之意,水无取影之心
2007-11-15 15:07
overcome
Rank: 1
等级:新手上路
帖子:17
积分:270
注册:2007-3-11

why?

2007-11-18 09:56
overcome
Rank: 1
等级:新手上路
帖子:17
积分:270
注册:2007-3-11

我说的是最后一句输出语句

2007-11-18 09:58
aipb2007
Rank: 12Rank: 12Rank: 12
来自:CQU
等级:贵宾
威望:40
帖子:2881
积分:29414
注册:2007-3-18

以下是引用PcrazyC在2007-11-15 15:07:48的发言:
觉得这种错误的程序还是不要讨论的好.


Fight  to win  or  die...
2007-11-18 13:24
zzj233
Rank: 1
等级:新手上路
帖子:36
积分:460
注册:2007-6-14

两个程序输出的结果不一样,是因为free(pstr);后pstr变成所谓的"野指针".

我不是个随便的人
2007-11-20 20:09
cince
Rank: 2
等级:注册会员
威望:1
帖子:108
积分:1180
注册:2007-1-21







There Is Nothing Impossible In My Dictionary.
2007-11-20 20:51
zkkpkk
Rank: 3Rank: 3
等级:中级会员
威望:4
帖子:474
积分:4866
注册:2006-6-17

你为什么要free了他又把他的地址输出?
pstr是地址
*pstr是那个地址的值

我的阿根廷队何时涅磐啊,唉......
2007-11-23 09:43
虫虫飞ya飞
Rank: 2
等级:注册会员
帖子:122
积分:1328
注册:2005-11-28

呵呵

2007-11-23 11:39
我是杨过
Rank: 2
等级:注册会员
帖子:49
积分:620
注册:2007-11-23

强烈的看不明白楼主的意图!

不要幻想,因为那从来不会是真的!
2007-11-24 12:00
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.070355 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved