申请空间后,默认值替多少
申请空间后,默认值为多少今天在调试一个程序时,遇到类似问题,下面是一个同样性质的一个小问题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这类集成开发环境本身的
[解决办法]
[解决办法][解决办法]申请空间,默认值是十六进制的CDCDCDCD,换算成十进制是3452816845
[解决办法]每个Byte里面都是CD,(十进制205)除了被你被你赋值的那一位是"a"
[解决办法]上面打错一个字母,VS下的确是0xCD
但我再说一次,这种东西毫无意义
为啥?因为这是DEBUG模式下,编译器方便你调试所以额外加上的东西
换RELEASE模式,就什么都没有了