C语言学习期间遇到的所有问题及解决-在15PB

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.csdn.net/x356982611/article/details/19922453 ;

A4
大数运算
http://blog.csdn.net/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

Q4
指向二维数组的指针
http://zhidao.baidu.com/link?url=-hhpmX4rhlxTNjNbaMFFq2bWRr3za3pNxNfv5A_KWJdlft0Wm_btv-lKD_WD2vNX4cnM5FeYqhKXhG1jOyOQDK

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断不下来的代码.原因何在?

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值