gpt4 book ai didi

C - 将元素从结构内部传递给函数

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

我有一个结构,由指向不同类型的其他结构的指针数组组成。

    typedef struct{
NodeT* nodes[2];
int size;
}stackT;

与:

    typedef struct{
char info;
}NodeT;

我有一个指向上面(第一个)结构​​的指针:

    stackT* stackPtr;

假设内存已分配给 stackT 结构以及两个 NodeT 结构,并为两个 NodeT 结构的成员进行关联分配,我将如何将 stackT 中的指针之一传递给函数?

<小时/>

例如:

    void setChar(NodeT* nodePtr, char setTo){
nodePtr->info = setTo;
}

用行调用:

    setChar(stackPtr->nodes[0], 'A');

不起作用。我认为这与 -> 语法取消引用指针有关,我实际上是在传递一个结构。我没有收到任何编译错误,但是当我通过打印 char info 中存储的内容来检查分配时,我什么也没有得到。

符号是否不正确或者我在程序的其他地方可能存在问题?我只是想首先排除这一点(正确的传递语法)。

最佳答案

如果有人正在寻找这个问题的解决方案,上面的代码实际上是正确的。假设您在某个结构中有一个指针数组,并且您希望传递这样的指针,则正确的语法是:

someFunc( structPtr->ptrArray[0] )

行:

structPtr->ptrArray[0]

实际上返回一个指针,而不是指针指向的任何内容。

(*structPtr).ptrArray[0]

也是等价的。

话虽这么说,我要么错误地解释了我面前的信息,要么我的代码中的其他地方存在潜在错误。

关于C - 将元素从结构内部传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18725063/

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