读书人

函数内部的内置数组的初始化有关问题

发布时间: 2013-03-20 15:25:24 作者: rapoo

函数内部的内置数组的初始化问题
C++ primer上说在函数体外定义的内置数组的元素会初始化为0,函数体内的数组不初始化。为什么函数体内的数组就不初始化呢?
在编译阶段,每个文件中的函数都会被初始化的吧,就是分配了一块内存,但是这块内存的大小是多少呢?我想如果要知道内存大小的话,起码得遍历这个函数体,知道里面定义了哪些东西才行吧。现在发现了里面定义了一个数组,不初始化这个数组也能知道数组的大小吗?是通过数组的长度知道的?
就算不初始化数组也可以给函数分配内存的话,给函数体内的数组初始化又有什么不妥呢?
你想岔了

[解决办法]
调用一个函数 进入函数前 会调整esp ebp 调整函数栈 通过esp来读取数据
不必提前知道分配多少内存 进入函数自动分配
[解决办法]
函数在编译后就是汇编代码,实际就在代码段。如果不运行到该代码段,那写局部变量啥的就都是一堆指令,没有执行,没有执行就当然不会分配空间,不会分配空间自然就没有值。

读书人网 >C++

热点推荐