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

时间:2013-09-10 17:12:44

标签: c pointers structure

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

    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;
    }

用line调用:

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

不起作用。我认为它与 - >有关语法解除引用我实际传入结构的指针。我没有得到任何编译错误,但是当我通过打印存储在char info中的任何内容来检查赋值时,我什么也得不到。

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

1 个答案:

答案 0 :(得分:0)

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

someFunc( structPtr->ptrArray[0] )

该行:

structPtr->ptrArray[0]

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

(*structPtr).ptrArray[0]

也相同。

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