Ada*_*dam 2 c arrays syntax
以下两种在C中创建数组的方法是否相同?
int main( void ) { int *array = malloc(sizeof(int) * 10); int array2[10]; }
我的想法是方法二是方法一的语法糖,但我不确定.
另外,在这些声明之后,array和array2包含了什么?我知道数组是指向数组开头的指针,但是数组初始化为什么?对于array2怎么样?
Fan*_*Fox 5
它们并不等同.这个:
int *array = malloc(sizeof(int) * 10);
将分配堆的内存块,并为您提供指向该内存的指针.
这个:
int array2[10];
将在堆栈上分配一些内存.阅读关于堆栈和堆内存的优秀答案:堆栈和堆的内容和位置是什么?
归档时间:
10 年 前
查看次数:
47 次
最近记录: