我们可以使用数组的表示法来为malloc分配的内存吗?

时间:2015-05-25 23:24:12

标签: c arrays malloc

我发现了这段代码,我不明白这意味着什么。我们是否有权使用此处的数组符号?

double *myList = malloc(3 * sizeof(double));
myList[0] = 1.2;
myList[1] = 2.3;
myList[2] = 3.4;
编辑:我认为这种表示法使用myList [0],myList [1],myList [2]的内存地址是连续的。 malloc()不保证地址是连续分配的。

1 个答案:

答案 0 :(得分:5)

double *myList = malloc(3 * sizeof(double));

它为指针myList中的3 double个类型数据分配内存。以下行在这些位置分配double类型的数据。

myList[0] = 1.2;
myList[1] = 2.3;
myList[2] = 3.4;

myList[2]相当于*(myList+2)

使用后,您需要使用free释放此内存,如下所示:

free(myList);

malloc在内存中分配连续的位置。