程序中var=new char[100],为什么var里的初始内容不是0?

格利高里 2001-07-19 06:21:35
以前c里的变量什么的,系统初始化自动设为0,VC里的变量、字符数组为什么在初始化是不设为0 ?是基于什么想法的?
...全文
95 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
格利高里 2001-07-20
多谢各位捧场,不过VC中声明 char var[100],和 var = new char[100],var数组中的内容都是0xcc,而static char var[100]则var数组初始化为0x00,我想微软可能是故意这样做的,和具体的内存的申请方式有关。比如建立一个超级大数组,或申请一块极大的内存空间,系统开始也只是分配出一段空间地址,等存取其中的内容的时候,才真正分配给内存。
  • 打赏
  • 举报
回复
格利高里 2001-07-20
没人讨论吗?给分啦!
  • 打赏
  • 举报
回复
yishen 2001-07-19
对,只是有一个空间可以存放这个数组,并没有初始化。
  • 打赏
  • 举报
回复
seedundersnow 2001-07-19

初始化操作也有时间/代码空间的开销,而且,通常,通用的初始化是不必要的,所以为了高效率,就没有提供初始化

  • 打赏
  • 举报
回复
seedundersnow 2001-07-19

C不进行初始化,操作系统通常也不进行初始化,其内容是未知的

  • 打赏
  • 举报
回复
wjyasd 2001-07-19
var=new char[100] 只是在内存中申请了这么大的空间,至于这个空间中原来有什么东西是不管的,,你要想清空的话 可以使用 memeset(var ,'\0',100) ;就可以了
  • 打赏
  • 举报
回复
dsli 2001-07-19
不是0,真的
c里的用的是static char
~~~~~~~
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2001-07-19 06:21
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……