gpt4 book ai didi

c - 结构体和指针列表

转载 作者:行者123 更新时间:2023-11-30 19:36:15 25 4
gpt4 key购买 nike

我有一个函数,它获取一个指向人员列表的指针,以及两个包含该列表中两个人的位置的整数。

int relation(Person **p_list, int p1, int p2)
{

printf("At Übergabe: %s\n", (*p_list + p1)->name_); //Prints name person1
printf("At Übergabe: %s\n", (*p_list + p2)->name_); //Prints name person2

int relative;
Person **Person1;
Person **Person2;

Person1 = (p_list + p1);
Person2 = (p_list + p2);

printf("Post Übergabe: %s\n", (*Person1)->name_); //Prints name person2
printf("Post Übergabe: %s\n", (*Person2)->name_); //memory error

return PLZ_WORK;
}

我不明白...如果两者都会产生内存错误,我会得到...但我不明白为什么第一个人现在是第二个人,而第二个人违反了我的内存...

编辑:

typedef struct _Person_
{
char name_[MAX_NAME];
char sex_;
}Person;

最佳答案

如所写,Person1 和 Person2 不加区别地指向内存。很可能您很幸运地获得了 p1 的值,并且指针最终指向(由于内存所在的方式而愚蠢的机会)另一个名称。 p2 的另一个值将指针的值插入不允许访问的内存区域。

关于c - 结构体和指针列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41271942/

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