gpt4 book ai didi

c - 如何访问仅给定指针的数组元素

转载 作者:行者123 更新时间:2023-11-30 21:11:24 26 4
gpt4 key购买 nike

struct node
{
int a;
node * link;
}

我有一个数组 A,其中每个元素的类型为“指向节点的指针”,因此 A 的每个元素都可以具有可变大小。示例

A[0]=NULL
A[1]=2->3->4
A[2]=3->4

等等..因此,如果我使用

则动态分配数组
u = (struct node*) malloc( m * sizeof(struct node*) )

然后

u+i = NULL

(i 是任意整数)给出左值所需的错误。如果我使用数组指针作为

struct node(*p)[];

然后使用

 (*p)+i = NULL

根据需要的 L 值给出错误。

*(p+i) = NULL

给出错误为无效使用未指定边界的数组

解决办法是什么?

最佳答案

#include <stdio.h>
#include <stdlib.h>

typedef struct node node;

struct node{
int a;
node * link;
};

void print(node *np){
while(np){
printf("%d->", np->a);
np = np->link;
}
printf("NULL\n");
}

int main(){
struct node four = {4, NULL};
struct node three = {3, &four};
struct node two = {2, &three};

struct node **u;
int m = 3;
u = malloc(m * sizeof(struct node*));
u[0] = NULL;
u[1] = &two;
u[2] = &three;
for(int i=0;i<m;++i)
print(u[i]);
free(u);
return 0;
}

关于c - 如何访问仅给定指针的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23327075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com