如何创建指向指向c中节点的指针数组的指针?

How to create a pointer to array of pointers pointing to nodes in c?

Pointer to array of pointers pointing to nodes

我想创建一个指向指针数组的指针,数组中的指针指向节点。

你的意思是 data_type **identifier,你可以在数组声明中添加 n 维。

data_type **identifier = malloc(sizeof(data_type))

然后例如分配这个数组的第一个元素可以是。

identifier[0] = malloc(size_of_this_array * sizeof(data_type))

也许你可以尝试将二维点节点数组图像化为一维向量。这将帮助您想象这个问题。

如果要设置多组节点坐标

第 1 组:node1X、node1Y、node2X、node2Y、node3X、node3Y .........

第 2 组:node1X、node1Y、node2X、node2Y、node3X、node3Y .........

第 3 组:node1X、node1Y、node2X、node2Y、node3X、node3Y .........

.......

void main()
{
//5 groups,each group have 4 nodes
int ** groups=(int**) malloc(5 * sizeof(int*));;
for (int i = 0; i < 5; i++) groups[i] = (int*)malloc(4*2 * sizeof(int));
//set
for (int i = 0; i < 5; i++)
{
    for (int j = 0; j < 4; j++)
    {
        groups[i][j * 2] = j;
        groups[i][j * 2 + 1] = j;
    }
}
//printf
for (int i = 0; i < 5; i++)
{
    printf("Group[%d]:", i);
    for (int j = 0; j < 4; j++)
    {
        printf("node[%d]X=%d ", j, groups[i][j*2] );
        printf("node[%d]Y=%d ,", j, groups[i][j*2+1]);
    }
    printf("\n");
}
for (int i = 0; i < 5; i++) free( groups[i]);
free( groups);
system("pause");
}

记得删除记忆!

Print result sample