社区
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]这些没人为赋值的,,它等于多少
...全文
222
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写文章
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这类集成开发环境本身的
Java反射机制与框架原理
一、课程简介 这是『Java学习指南系列』的第18篇教程 ,是Java开发的高级课程,介绍反射机制、注解和框架设计的一般性原理。 二、主要内容 本篇包含以下内容: * 使用反射机制,读取Class中的字段信息 * 使用反射机制,对Class中的方法进行调用 * 以JSON与POJO的转换为例,演示反射机制的运用 * 自定义注解的语法 * 使用反射机制,读取类中的注解信息 * 以反射和注解为基础,演示数据库SQL的自动生成 * 注解的
默认值
,默认注解,元注解和内置注解 * 以全局实例管理为例,演示一般性的框架设计方法三、课程体系 〖Java学习指南〗系列:包含入门与进阶语法,Swing桌面开发,安卓开发,JavaFX开发,网络通信Socket,数据结构与算法等课程。 〖网站开发〗系列:包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。
C语言动态
申请
内存
空间
之malloc(),calloc(),realloc()函数
C语言动态
申请
内存
空间
之malloc(),calloc(),realloc()函数 在C语言中用于动态
申请
内存
空间
的函数主要为malloc()函数,calloc()函数,以及realloc()函数,以下主要介绍三个函数的用法,区别以及使用时的注意事项。 malloc(),calloc(),realloc()三个函数均为C语言系统库函数,使用其中之一进行动态
申请
内存
空间
时,均需要添加 #include<stdlib.h> 头文件,才能正常使用。 函数用法 void *malloc(siz
为什么MySQL不建议使用NULL作为列
默认值
?
为什么MySQL不建议使用NULL作为列
默认值
?
mysql不推荐列
默认值
设置为null到底是为什么
MySQL不建议使用NULL作为列
默认值
到底为什么 通常能听到的答案是使用了NULL值的列将会使所以失效,但是如果实际测试过一下,你就知道IS NULL会使用索引.所以上述说法有漏洞. 但是毫无疑问,NULL是很特殊,很不合群的.既然NULL如此特殊,如此不合群,为什么它还会存在呢?我们什么时候需要使用NULL呢? Preface Null is a special constraint of columns. The columns in table will be added null constra
char类型的默认数值
char的
默认值
与Unicode与ASCII的区别
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章