首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

申请空间后,默认值替多少

2012-09-24 
申请空间后,默认值为多少今天在调试一个程序时,遇到类似问题,下面是一个同样性质的一个小问题typedef unsi

申请空间后,默认值为多少
今天在调试一个程序时,遇到类似问题,下面是一个同样性质的一个小问题

 typedef unsigned char byte;
,
,
,
byte *a = new byte[10];
a[0] = 'a';
printf("%c\n",a[0]);
printf("%c\n",a[1]);

这时a[1] - a[9]这些没人为赋值的,,它等于多少



[解决办法]
申请内存时不修改内存当前值
上次使用时该内存的数据是怎么样的,刚申请时就是怎么样的
不仅申请,你定义变量却没有初始化,也是这么回事,内存中依然是上次压栈的数据

VS上的小程序的话,一般是0xCC吧
不过这种东西没意义,除非你是研究VS这类集成开发环境本身的
[解决办法]

探讨

现在我在程序中,申请了一段空间,向其中赋值,而可能只是向其中一部分长度空间赋值而已,想要知道我赋值到了哪里,,有什么法子吗

引用:
今天在调试一个程序时,遇到类似问题,下面是一个同样性质的一个小问题

typedef unsigned char byte;
,
,
,
byte *a = new byte[10];
a[0] = 'a';
printf("%……

[解决办法]
探讨
现在我在程序中,申请了一段空间,向其中赋值,而可能只是向其中一部分长度空间赋值而已,想要知道我赋值到了哪里,,有什么法子吗

[解决办法]
申请空间,默认值是十六进制的CDCDCDCD,换算成十进制是3452816845
[解决办法]
每个Byte里面都是CD,(十进制205)除了被你被你赋值的那一位是"a"
[解决办法]
上面打错一个字母,VS下的确是0xCD
但我再说一次,这种东西毫无意义

为啥?因为这是DEBUG模式下,编译器方便你调试所以额外加上的东西
换RELEASE模式,就什么都没有了

热点排行