-4
你好,我有一个函数的问题。声明是:带两个指针的C函数
int load_clusters(char *filename, struct cluster_t **arr)
而且我不知道如何在** arr之前使用这两个指针。 我希望我这样称呼它:
struct cluster_t *clusters;
load_clusters("file.txt",&clusters);
但我不知道这是否是正确与否。
在函数中我需要为它分配内存。 我认为它必须是这样的。
arr = (struct cluster_t**)malloc(count * sizeof(struct cluster_t*));
arr[0...x] = (struct cluster_t*)malloc(sizeof(struct cluster_t));
arr[0...x]->size += 1;
.
.
.
但毕竟这需要调用函数来打印集群。
void print_clusters(struct cluster_t *carr, int narr)
{
printf("Clusters:\n");
for (int i = 0; i < narr; i++)
{
printf("cluster %d: ", i);
print_cluster(&carr[i]); AND THIS DOESN'T WORK AS I EXPECT
}
}
感谢所有帮助;-)
通常,**表示该函数将分配内存,并希望返回一个指向已分配内存的指针,因此您需要将指针传递给指针。 – stark