- 博客(13)
- 收藏
- 关注
转载 为什么我的程序debug版本运行没有问题,而release版本总是报错?
To 楼主 ,我在另外一个类似的贴子作了回答 http://expert.csdn.net/Expert/topic/2955/2955693.xml?temp=.3361933 内容大致如下: happyparrot(快乐鹦鹉) 说的是现象,是正确的;除此之外,我还想补充一点。 不知楼主有没有想过,为什么要用到 release
2009-05-31 10:17:00 24198 2
原创 没验证过——Release版本如何调试
在很多程序员的观点中,只有Debug版本才能调试,其实对于Release版本的调试是一样可以进行的,有人也许会说,在Debug版本下调试就够了,能在Debug版本下运行很好的程序在Release版本下是不会有问题的,其实这个观点是错误的。我在写程序的过程中就遇到过很多次,一个程序在Debug下能很好的运行,但在Release下运行就出错,检查原因就是缓冲区越界,如果能在Release版本下调试
2009-05-26 15:25:00 1335 1
原创 sprintf 的返回值
On success, the total number of characters written is returned. This count does not include the additional null-character automatically appended at the end of the string.成功返回写字符的总数,其中不包括结尾的null字符。On
2009-05-26 15:12:00 16601
转载 使用sprintf 的常见问题
一个程序debug无错,而release有错。最终定位于某sprintf函数缓冲区溢出,在网上找了一些相关内容。使用sprintf 的常见问题sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访问错误,但好在由sprintf 误用导致的问题虽然严重,却很容易找出,无非就是那么几种情况,通常用眼睛再把出错的代码多看几眼就看出来了。1,缓冲区溢出
2009-05-26 15:02:00 9684
原创 warning C4996: 'gets': This function or variable may be unsafe. Consider using gets_s instead.
To disable deprecation, use _CRT_SECURE_NO_WARNINGS. Significant enhancements have been made to make the C Run-Time Libraries (CRT) more secure. Many C Run-Time Libraries (CRT) functions now hav
2009-05-12 22:23:00 7823
转载 用Visual C++ 2005 Express Edition构建安全代码
本文内容: C运行时库的新安全特性 使用标准C++库 标准C++库的边界检查 编译器安全特性 新的C++编程语言引言 对编程爱好者来说,想要简单快速地生成安全可靠的程序,如今又多了一个新的选择,那就是微软公司刚刚发布不久的Visual C++ 2005 Express Edition,它是Microsoft Visual C++ 2005系列中最初级的版本,我们可以把它看作是个人版
2009-05-12 21:58:00 1708
原创 Linux系统下如何挂载Windows分区和U盘
机子同时装了Windows和Linux操作系统,通常情况下Linux对Windows的分区格式是不支持的。而我们个人用户用的最多的往往还是Windows系统,在学习中免不了要在两个系统之间交换文件。幸好Linux系统提供了mount命令可用于挂载Windows下的分区。为此我们可通过此命令来在Linux下挂载Windows的分区来实现两个系统之间的文件交换。(提示,目前的Linux的系统好像对NT
2009-05-10 12:45:00 702
转载 linux 创建文件(夹)命令
创建文件夹 mkdir aaa mkdir -p aaa 创建文件命令 vi foo.txt echo "aaaa" > foo.txt cat > foo.txt
2009-05-10 12:42:00 650
转载 AT&A汇编语言语法
1.寄存器引用 引用寄存器要在寄存器号前加百分号%,如movl %eax, %ebx。 80386有如下寄存器: 8个32-bit寄存器 %eax,%ebx,%ecx,%edx,%edi,%esi,%ebp,%esp; 8个16-bit寄存器,它们事实上是上面8个32-bit寄存器的低16位:%ax,%bx,%cx,%dx,%di,%si,%bp,%sp; 8个8-bit寄存器:%ah
2009-05-10 12:29:00 1289
转载 理解 位域
有很多人对于位域的理解模糊,我用编译器代码来阐述它,希望对大家有些帮助 CODE:struct{ short a:4; short b:5; short c:7;}t;int main(){ t.a = 1; t.b = 2; t.c = 3; printf(size: %d/n, sizeof(t)); printf(%d/n
2009-05-10 11:59:00 1021
原创 用enum提高程序清晰度zz
enum的秘密:enum是“用户自定义类型” 呵呵,enum在实际中应用比较少,所以你会忽略它。但是,在这里,我告诉你,enum 和 struct、class一样,都是用户自定义类型。 对呀!enum是用户自定义类型,他有数据成员,还有成员函数!For example: enum e{a=1 , b=2 , c=4};那么: 001: enum e e1;
2009-05-04 17:20:00 511
转载 堆和栈(zz)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类
2009-05-04 11:04:00 504
转载 warning C4244: '=' : conversion from 'int' to 'float', possible loss of data
在32位平台上,通常int是4字节长度,最多表示到21亿多,而int型是“绝对精确”的,换句话说,就是int行最多可以保证10位十进制有效数字的精确度。 而float只能保证6位有效数字的精确度,因此int到float的转换是可能丢失精度的,比如整数“1234567899”转换成float后,大约是:1.23457936乘10的9次方,也就是从第7位有效数字开始已经不准确了。 do
2009-05-04 10:53:00 12719 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人