我发现了这段代码,我不明白这意味着什么。我们是否有权使用此处的数组符号?
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()不保证地址是连续分配的。
答案 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
在内存中分配连续的位置。