我有一个由指向不同类型的其他结构的指针数组成的结构。
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
中的任何内容来检查赋值时,我什么也得不到。
符号是否不正确,或者我在程序的其他地方可能遇到问题?我只想先排除这一点(正确传递语法)。
答案 0 :(得分:0)
如果有人正在寻找此问题的解决方案,则上述代码实际上是正确的。 假设您在某个结构中有一个指针数组,并且希望传递这样的指针,那么正确的语法将是:
someFunc( structPtr->ptrArray[0] )
该行:
structPtr->ptrArray[0]
实际上返回一个指针,而不是指针指向的任何指针。
(*structPtr).ptrArray[0]
也相同。
话虽这么说,我要么错误地解释了我之前的信息,要么我的代码中的其他地方有潜在的错误。