| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1558 人关注过本帖
标题:[求助]关于内存动态分配的问题
只看楼主 加入收藏
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
指针这个东西感觉起来挺难学的,要好好琢磨。。。。。

英者自知,雄者自胜
2006-04-30 23:15
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
咱们大家只要多体会,多讨论就会了
多跟踪就好了,毕竟咱都不是天才
一定要把指针本身地址与所指地址分清
double *p;
P可以理解成有了两块
一块是他指向的内容的地址(P)
一块是他自己的地址(&P)大小为SIZEOF(INT)现在可以说成是4个
其中*P一个是定义时告诉编译器这是个指针,一个是取P的内容(可以看成一个变量)
当咱每次申请后用完咱可别忘了释放
释放完最好让它=0,防止下面的语句不小心用到他
当它=0之后COUT<<P;就会出现系统错误.提醒咱,便于查找错误
否则大程序咱就很难找到咱的错误
而这里DELETE只把P指向的地方给改了 而指针P还存在(总得给个值吧,系统抓过一个就给他了).
这个是俺的,对咱们应该会有一些帮助(第一视角)

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-05-01 21:13
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
释放完最好让它=0,防止下面的语句不小心用到他
当它=0之后COUT<<P;就会出现系统错误.提醒咱,便于查找错误

恩,同感,但是还是没你强,不能用语言表达出来

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-02 09:47
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
嗯,多谢以上的老兄指导,我好像有点琢磨到其中的要点了。

英者自知,雄者自胜
2006-05-02 21:21
独角龙
Rank: 1
等 级:新手上路
帖 子:221
专家分:0
注 册:2006-5-5
收藏
得分:0 

不懂,学习中!1


奋斗改变一切!!
2006-05-05 10:55
weijun_yang
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-5-6
收藏
得分:0 
杜绝“野指针”
“野指针”不是 NULL 指针,是指向“垃圾”内存的指针。人们一般不会错用 NULL
指针,因为用 if 语句很容易判断。但是“野指针”是很危险的,if 语句对它不起作用。
“野指针”的成因主要有几种:
(1)指针变量没有被初始化。任何指针变量刚被创建时不会自动成为 NULL 指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么
将指针设置为 NULL,要么让它指向合法的内存。例如
char *p = NULL;
char *str = (char *) malloc(100);

(2)指针 p 被 free 或者 delete 之后,没有置为 NULL,让人误以为 p 是个合法的指针。

(3)指针操作超越了变量的作用范围。这种情况让人防不胜防,示例程序如下:
class A
{
public:
void Func(void){ cout << “Func of class A” << endl; }
};
void Test(void)
{
A *p;
{
A a;
p = &a; // 注意 a 的生命期
}
p->Func(); // p 是“野指针”
}

-------出自《C/C++高质量程序设计》
2006-05-06 01:05
快速回复:[求助]关于内存动态分配的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016476 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved