【发布时间】:2016-01-28 00:25:35
【问题描述】:
以下两种C语言创建数组的方法是否等效?
int main( void )
{
int *array = malloc(sizeof(int) * 10);
int array2[10];
}
我的想法是方法二是方法一的语法糖,但我不确定。
另外,array 和 array2 在这些声明之后包含什么?我知道数组是指向数组开头的指针,但是数组初始化为什么? array2 怎么样?
【问题讨论】:
-
不,它们不一样。阅读堆栈内存和堆内存以及 malloc 的实际作用。
-
一个声明一个数组。另一个声明一个指针,调用
malloc并使指针保存malloc返回的值。