| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 898 人关注过本帖
标题:这两个赋值有什么不同吗?
只看楼主 加入收藏
gpp6025
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2010-7-8
结帖率:84.62%
收藏
已结贴  问题点数:20 回复次数:4 
这两个赋值有什么不同吗?
自定义一个结构体的数据类型
然后在引用的时候用的指针的变量但是在初始化的时候出问题了
datatype *PD;
PD=NULL;
上面的是在VS2010里面编译可以过但是运行的时候出问题每个自定义的结构体里面的元素都是:0XCC0030错误,不可计算表达式的值
然后改成下面的赋值:
PD=(struct datatype *)malloc(sizeof(datatype));就可以过了
第一个赋值的方式是是直接给指针赋个空值,
第二个赋值直接开辟个内存空间给指针赋值,
但是为什么在有些编译器下第一个也是可以的啊?
还有两个赋值方式的不同是不是第一个没有开辟实际的物理内存而并不占内存只是个表现形式啊??
搜索更多相关主题的帖子: 编译器 表达式 结构体 空间 元素 
2011-01-23 08:53
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:7 
datatype *PD;
PD=NULL;
这样 还没有开辟内存空间给PD的,它只是一个指向一个空的指针
datatype *PD;
PD= new datatype;

或者datatype *PD = new datatype,就行了



我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2011-01-24 09:31
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:7 
我用第二种,第一个没有见过。

   唯实惟新 至诚致志
2011-01-24 16:14
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:7 
datatype *PD;
PD=NULL;

然后使用PD指针,在什么编译器下不报错?
2011-01-24 16:20
gpp6025
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2010-7-8
收藏
得分:0 
回复 4楼 秀痘魔导士
在那个WDK下的x86 checked build Enviroment 里面那些UNICODE_STRING 还有那些 DRIVER_OBJECT 之类的结构指针不就是直接赋空值么,
就应为那些指针在使用的时候系统启动的时候就已经开辟好了这些空间,而自己写的还没所以在用的时候要开辟,之后才可以PD=NULL;这样赋值吗?
2011-03-25 23:01
快速回复:这两个赋值有什么不同吗?
数据加载中...
 
   



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

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