gpt4 book ai didi

c - 如何将指向结构的指针数组作为参数传递给c

转载 作者:太空宇宙 更新时间:2023-11-04 02:24:25 25 4
gpt4 key购买 nike

我试图将一个指针数组作为参数传递给结构,在函数中修改它并在 main() 中打印修改后的值。

代码是:

#include "stdio.h"

typedef struct testStruct_s {
int x;
int y;
} testStruct;

typedef testStruct typeTab[4];

void modify(typeTab tab)
{
printf("Before modification %d\n", tab[2].x);
tab[2].x = 3;
printf("Modified %d\n", tab[2].x);
}


int main()
{
typeTab tab[4];
tab[2]->x = 0;
printf("First %d\n", tab[2]->x);
modify(*tab);
printf("Second %d\n", tab[2]->x);
return 0;
}

我得到了以下输出:

First 0
Before modification 1719752944
Modify 3
Second 0

我不知道如何在 modify() 中获取正确的 tab[2].x 值以及如何修改此值以打印 tab[2]->x = 3 之后。

对于我尝试做的事情,需要使用 typedef testStruct

最佳答案

typeTab 已经是一个数组,所以 typeTab tab[4] 声明了一个数组的数组。这意味着 tab[2]->xtab[2][0].x 相同,这不是您想要的。

不要添加额外的维度,然后相应地修改访问权限。

typeTab tab;

tab[2].x = 0;
printf("First %d\n", tab[2].x);
modify(tab);
printf("Second %d\n", tab[2].x);

关于c - 如何将指向结构的指针数组作为参数传递给c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53379303/

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