我们可以使用数组的表示法来表示 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
在内存中分配连续的位置。
我找到了这段代码,但我不明白它是什么意思。我们有权像这里那样使用数组表示法吗?
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
在内存中分配连续的位置。