[英]Where is an initialized local variable's value stored before the stack in C?
[英]where are the variable stored that are initialized in main function in c?
在C语言中,我知道使用malloc动态初始化变量时,该变量存储在堆区域中。 但是,当进行以下类型的声明并稍后初始化变量时,在哪里分配内存。
int a[26];
要么
int a[n]; //n is a variable and each element in array a is later initialized through a for loop.
我最初的理解是像在Java中一样,这里在main函数中声明的所有变量也都存储在堆栈区域中。 我的怀疑是-说,有一个函数采用数组“ a”的地址并更改其内容。 要更改“ a”的内容,它应该能够访问“ a”中每个元素的地址。 由于函数本身正在主函数顶部的堆栈空间中执行,因此它无法直接访问数组“ a”的内容。 因此,我的疑问是数组“ a”的内存分配在哪里?
数组几乎可以是任意长度,可以用于存储数千甚至数百万个对象,但是必须在创建数组时确定大小。 索引中访问数组中的每个项目,索引只是一个数字,指示对象在数组中的存储位置或插槽。
存储在计算机物理内存中的阵列大小
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.