3.15
动态申请数组返回0指针
int* avage;
avage=(int*)calloc(iGeshu,sizeof(int));
free(avage);
发现指针经过memset()后变为0;又发现size_t count会被memset(清零)
void *memset( void *dest, int c, size_t count );
求素数级达到千万级别.
3.17
问题:int a,b=0;
a=?
结果是a没有被赋初值.
3.18.1
Demo策划设计编程实现
Alpha检测是否有重大BUG,缺陷
Beta测试和完善各项功能,外部小规模测试.
Release版本
Gold Release热补丁,插件方式.
3.18.2
指针常量与常量指针
指针为常量,与 指向常量的指针
http://blog.sina.com.cn/s/blog_829761e80100snjy.html
流密码
3.19
16进制整数
0x10F
八进制整数
075(0开头)
无符号整数,加后缀u / U
1U,2014u
带小数点的数字和带E的数字,默认为双精度型.
单精度浮点,后要加f / F
/b退格
/r回行
/f换页
/n
3.23
Q:增加一条线的宽度
需要抗锯齿算法
因为无法解决
3.25
Q1左移动和右移和第一位1.0该补什么?左端补齐与右移相同.对齐补充?
Q2一种想法关于switch-case:
第一步
带对比数据为D
对case 的数字进行~按位取反预保存为A
第二步
D&A
je address;
Q3定义一个大结构体数组指向一个小的结构体数组
怎么才能知道小结构体数组的内部个数?如果大小相反会有什么后果或者提示?
Q4while里面循环定义同一个变量
A 可以定义的,没问题,只不过每次循环之后就失效了,也就是每循环一次就会重新定义一个相同名称的变量
3.26
Q1小端和大端的识别方式.
Q2生存期和作用域
Q3构建重定位表,不可逆?PE融合器?
3.27
Q1大数计算,
1*……*99*100=?
Q2自定义变量类型?
3.28
Q1:程序在main前面都干了什么?
Q2:溢出一个helloworld弹窗!
Q3:scanf_s后面参数不加数量会怎样?
A:scanf_s的函数从标准输入流stdin读取数据并将数据写入到参数给出的位置。每个参数必须是指针的类型对应的格式类型说明符变量。如果复制字符串之间发生重叠,则其行为是未定义的。被清零…
Q4:深入理解:编译,链接的过程.
Q5:阅读IEEE关于2进制标准的内容.
http://zh.wikipedia.org/wiki/IEEE_754
Q6正常的printf字符串在内存中的排列顺序.
Q7 PB51 printf(“%s”,&)为什么要&;
重点在于%s字符串格式……默认当做数组处理!变量是地址。
C++中引用(&)的用法和应用实例
http://www.cnblogs.com/Mr-xu/archive/2012/08/07/2626973.html
A1:
Release:
MSVC CRT运行库启动代码分析
http://www.programlife.net/msvc-crt-startup.html
kernel32.BaseThreadInitThunk
基本线程初始化程序
_security_init_cookie
全球安全Cookie代码/ GS编译缓冲区溢出保护(缓冲区安全检查)和代码使用异常处理。在进入溢出保护功能,Cookie放在堆栈上,并在退出时,堆栈上的值与全局Cookie相比。他们之间的差异表明,缓冲区溢出已经发生并导致立即终止程序。
因为是在启动函数中初始化全局变量_security_cookie,所以在该process以后的运行过程中,Cookie值是保持不变的。
编译器在为一个函数插入安全Cookie时,他还会与当时的EBP做一次xor,然后将其保存到Cookie变量中,这些指令通常出现在函数的序言(prolog)之后
在VC8编译器启动的启动函数中(如WinMainCRTStartup)还会调用_security_init_cookie函数对该变量进行正式的初始化。
_tmainCRTStartup
C运行库的初始化操作
_tmainCRTStartup的上一层调用来自kernel32.dll.
先按照被编译需要检测cookie,然后执行下一个__tmainCRTStartup的基本流程为:堆初始化、多线程初始化、IO初始化、命令行参数解析、环境变量参数解析、全局数据和浮点数寄存器初始化、main函数调用、返回。
__SEH_prolog4
mov esi,offset _native_startup_lock
lock cmpxchg dword ptr ds:[esi],exc
cmp dword ptr ds:__native_startup_state,esi
_amsg_exit
ds:[has_cctor]
cmp dword ptr ds:[__native_startup_state],esi
MSVCR110._initterm_e
or
MSVCR110._initterm
cmp dword ptr ds:[__dyn_tls_init_callback],0x0
IsNonwritableInCurrentImage
ds:[envp]
MSVCR110.___WINITENV
ds:[envp]
ds:[argv]
ds:[argc]
CALL WMAIN
3.29
Q1:如何取出在某位上的数字呢?
A1:
125/10%10
拓展:
如果从10进制数字k转换n进制并取第p位的值则该值m为
m=k/(n^p)%(n^p)
2015年3月29日 18:30:03
拓展灵感来源于手工转换n进制.原算法来自于计算机程序设计C++公开课2.12实例构造5位数的反序数.
###3.30
Q1下面式取不到值
char cA[10];
scanf_s(“%s”,cA);
A1原因是没有加安全版限制大小.
scanf_s(“%s”,cA,10);
Q2函数指针
int (*pA)(int,int);
int (*pA)(int &,int &);//使用了引用
Q3如何判断float类型的数据是否为0?
Q4大数运算的几种方法和实现
A3
应用场景:
opengl/directx的代码里到处都是
碰撞检测 光线跟踪etc.
if (fabs(x) < EPSILON)
DBL_EPSILON和 FLT_EPSILON的用法,分别用于双\单精度的极小值.
例如:
文章:
http://blog.youkuaiyun.com/x356982611/article/details/19922453 ;
A4
大数运算
http://blog.youkuaiyun.com/shamohua/article/details/5919980
3.31
Q1
array[2][3],2,3放在哪里汗
Q2
array[1][2]
array指向?
Q3数组指针.
int a[2][3],(*p)[3];
p=a;
*(p+1)+1==a[1]+1
Q5结构体变量?
struct _PERSON str;C++可以直接_PERSON str?
Q6
枚举的默认赋值?如果部分干扰.
Q7
定义一个字符指针数组.
4.2
http://wenku.baidu.com/view/97d62ddb6f1aff00bed51ec1.htm绘制图形
4.3
printf(“”CV_VERSION)
这里用的是宏
printf(“%s—%d\n”,FILE, LINE);
这是什么参数?
预定义宏LINE解析
C语言:常用的预定义的宏
#line 100
int main()
{
//printf_s(""CV_VERSION CV_VERSION);
printf_s( "%s---%d\n",__FILE__ , __LINE__);
return 0;
}
牛B的VS2012断不下来的代码.原因何在?