hur.cn - 华软网

 热门搜索

局部变量的初值为什么或者为0,或者为1241512?

  作者:未知    来源:网络    更新时间:2011/4/15

折腾2个小时,内存映照两个资料,一个成功了,另一个失利了,追踪原因是:

DWORD     dwNumberoftoMap1; 
DWORD     dwNumberoftoMap2;


映照成功时,dwNumberoftoMap1自动为0
失利时局部变量dwNumberoftoMap2自动为1241512,致使未映照整个资料。
有点奇怪,每次执行时dwNumberoftoMap2自动为1241512。删掉第一个映照dwNumberoftoMap2照旧自动为1241512

MapHeadAddress   =   MapViewOfFile( 
    hMapFile,                        
    FILE_MAP_WRITE,         
    0,   
    0 
    dwNumberoftoMap2);              

Copymemory(Marklist,MapHeadAddress,17651844); 

系统是window sever 2003 64bit, vs2005.

哪位朋友解释下。
---华软 网友回答---
初始化一下呗,至于为什么是那个值,64bit的就不知道了.
---华软网友回复---
看编译器的吧,这个有C++规范的吧
---华软网友回复---
dwNumberOfBytesToMap 
The number of bytes of a file mapping to map to the view. All bytes must be within the maximum size specified by CreateFileMapping. If this parameter is 0 (zero), the mapping extends from the specified offset to the end of the file mapping.

MapViewOfFile()失利,你GetLastError()看下前往值。局部变量运用之前最好初始化,这是个好的编程习气。
---华软网友回复---
回答不了你的疑问,只是想说一下,给变量赋个初值代码显得好看些
---华软网友回复---
release程序版本局部变量不初始化时,值没法确定,取决于运行时刻分配给它的堆栈内存的值
---华软网友回复---
debug下普通变量初始化成0xcc, 0xcccc,或0xcccccccc

release是随机数。

static变量是0
---华软网友回复---
引用 6 楼 jennyvenus 的回复:
debug下普通变量初始化成0xcc, 0xcccc,或0xcccccccc

release是随机数。

static变量是0

受教,一直以为普通变量是随机的。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。