我正在传递一个指向函数的双指针。函数将数据从文件读取到链接列表中。我将CircuitData设置为指向第一个节点的指针。在我调用函数并想使用CircuitData之后,它是空的。为什么不返回第一个节点的地址(&newPtr)?
ListNodeType **CircuitData;
int numEl = 0;
int numNodes = 0;
CircuitData = NULL;
ReadFile(CircuitData, &numEl, &numNodes);
printf("%p", CircuitData);
我调用的ReadFile函数的一部分:
void ReadFile(ListNodeType **CircuitData, int *numEl, int *numNodes){
*numEl = 0;
*numNodes = 0;
ListNodeType *newPtr, *tempPtr;
newPtr = malloc(sizeof(ListNodeType));
CircuitData = &newPtr;
newPtr->nextPtr = NULL;
最佳答案
首先,声明的CircuitData
类型应该是指针:
ListNodeType* CircuitData;
要设置存储在
CircuitData
中的地址(在ReadFile函数中),您可以编写*CircuitData = newPtr;
这会将地址
CircuitData
处的数据设置为存储在newPtr
中的地址,这就是您要执行的操作。您还需要通过调用
ReadFile(&CircuitData, ...)
关于c - 将双指针传递给函数以获取链表(C)的起始地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19436950/