社区
C语言
帖子详情
申请空间后,默认值为多少
CHZiroy
2012-08-08 04:21:37
今天在调试一个程序时,遇到类似问题,下面是一个同样性质的一个小问题
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]这些没人为赋值的,,它等于多少
...全文
242
12
打赏
收藏
申请空间后,默认值为多少
今天在调试一个程序时,遇到类似问题,下面是一个同样性质的一个小问题 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]这些没人为赋值的,,它等于多少
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
夏天__
2012-08-10
打赏
举报
回复
没啥意义,一般申请完事之后,都memset一下
markma
2012-08-10
打赏
举报
回复
没啥意义,一般申请完事之后,都memset一下
PIE
2012-08-08
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
申请空间,默认值是十六进制的CDCDCDCD,换算成十进制是3452816845
[/Quote]
顶
xiaohuh421
2012-08-08
打赏
举报
回复
你不知道系统分配后是多少,但你可以分配后自己指定嘛.
比如:
BYTE *buf = new BYTE[0x100];
memset(buf, 0xFF ,0x100);//这里就可以把分配的空间全部置成0xFF了,
当然要从内容看有哪些buf被写到哪里了,这是很危险的, 因为你不能保证你的数据中没有0xFF,万一有了,悲剧就会发生了.
最好还是使用一个指针,或者是索引变量要记录buf被访问到哪里了.
种菜的
2012-08-08
打赏
举报
回复
自己记录赋值到多少字节了,或者用一个指针指向下次将要被赋值处,都行。
baichi4141
2012-08-08
打赏
举报
回复
上面打错一个字母,VS下的确是0xCD
但我再说一次,这种东西毫无意义
为啥?因为这是DEBUG模式下,编译器方便你调试所以额外加上的东西
换RELEASE模式,就什么都没有了
ylongwu
2012-08-08
打赏
举报
回复
每个Byte里面都是CD,(十进制205)除了被你被你赋值的那一位是"a"
ylongwu
2012-08-08
打赏
举报
回复
申请空间,默认值是十六进制的CDCDCDCD,换算成十进制是3452816845
baichi4141
2012-08-08
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
现在我在程序中,申请了一段空间,向其中赋值,而可能只是向其中一部分长度空间赋值而已,想要知道我赋值到了哪里,,有什么法子吗
[/Quote]
自己设个变量,赋值时记下来赋值到了哪里
取巧的方法的确有,例如如果你要赋值的数据中不可能有零值(最常见的就是字符串),就可以申请之后立刻全部置零,这样就可以通过查找零来判断赋值到了什么位置
但这只是特定条件下的取巧,本质上,编译器不会帮你多做任何事,那是在浪费资源降低效率,并非普遍需要而仅仅是你需要的功能,必须你自己去实现
IVERS0N
2012-08-08
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
现在我在程序中,申请了一段空间,向其中赋值,而可能只是向其中一部分长度空间赋值而已,想要知道我赋值到了哪里,,有什么法子吗
引用楼主 的回复:
今天在调试一个程序时,遇到类似问题,下面是一个同样性质的一个小问题
typedef unsigned char byte;
,
,
,
byte *a = new byte[10];
a[0] = 'a';
printf("%……
[/Quote]
用另一个指针指向空间 用一个变量记着这个指针移动了多少字节
CHZiroy
2012-08-08
打赏
举报
回复
现在我在程序中,申请了一段空间,向其中赋值,而可能只是向其中一部分长度空间赋值而已,想要知道我赋值到了哪里,,有什么法子吗
[Quote=引用楼主 的回复:]
今天在调试一个程序时,遇到类似问题,下面是一个同样性质的一个小问题
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]这些没人为赋值的,,它等于多少
[/Quote]
baichi4141
2012-08-08
打赏
举报
回复
申请内存时不修改内存当前值
上次使用时该内存的数据是怎么样的,刚申请时就是怎么样的
不仅申请,你定义变量却没有初始化,也是这么回事,内存中依然是上次压栈的数据
VS上的小程序的话,一般是0xCC吧
不过这种东西没意义,除非你是研究VS这类集成开发环境本身的
C语言动态
申请
内存
空间
之malloc(),calloc(),realloc()函数
在C语言中用于动态
申请
内存
空间
的函数主要为malloc()函数,calloc()函数,以及realloc()函数,以下主要介绍三个函数的用法,区别以及使用时的注意事项。 malloc(),calloc(),realloc()三个函数均为C语言系统库函数...
为什么MySQL不建议使用NULL作为列
默认值
?
为什么MySQL不建议使用NULL作为列
默认值
?
mysql不推荐列
默认值
设置为null到底是为什么
MySQL不建议使用NULL作为列
默认值
到底为什么 通常能听到的答案是使用了NULL值的列将会使所以失效,但是如果实际测试过一下,你就知道IS NULL会使用索引.所以上述说法有漏洞. 但是毫无疑问,NULL是很特殊,很不合群的....
mysql设置varchar 字段的
默认值
''和null的区别,以及varchar和char的区别
一、背景 ...对于常见的int类型,
默认值
为0就好,但是对于varchar类型呢,
默认值
是设置为”还是Null呢? 二、‘’和null的区别 1、占用
空间
问题 (1)、c语言: ‘\0’,这个表示空,需要消耗存...
char类型的默认数值
char的
默认值
与Unicode与ASCII的区别
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章