gpt4 book ai didi

控制结构数组上的双指针

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

我需要为指针打印一个名称。但它根本不起作用。控制台停止..

也许问题出在“find_young”函数上。我不知道是什么问题以及如何解决它。我能为正确的代码做些什么。

下面是我的代码。

========

typedef struct {
char *name;
int age;
} PERSON;

PERSON s[3] = { {"ACE", 25}, {"HEART" ,28}, {"CLOVER", 40} };

void find_young(PERSON **p) {
int i;

for (i = 0; i < 1; i++) {
if (s[i].age > s[i+1].age) {
p = &s[i+1];
}
}
};

void Ex1()
{
struct PERSON *p;
p = &s[0];

find_young(&p);
printf("youngest man is %s.", p->name);
}

最佳答案

您在错误的类型之间进行分配,编译器应该警告您:

p = &s[i + 1];

这里的表达式 &s[i + 1] 是一个指向 PERSON 的指针,但是 p 是一个指向 指针的指针PERSON。不完全一样。

你想要的是

*p = &s[i + 1];

关于控制结构数组上的双指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33995858/

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