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

Can we use the notation of an array for a memory allocated by 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() 不保证地址是连续分配的。

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 在内存中分配连续的位置。