【发布时间】:2013-04-12 06:35:17
【问题描述】:
我似乎无法读取双指针指向的数据。它用于分配,因为我必须使用双指针。
出现以下错误:
Error: Access violation reading location.
代码如下:
struct Fraction {
int num, denom;<br>
};
struct PolyTerm {
struct Fraction coeff;
int exponent;v
};
struct PolyNode {
struct PolyTerm** dataPtr;
struct PolyNode* next;
};
void printPolyTerm(struct PolyTerm** argTerm) { // this function works fine><br>
printFraction(&(argTerm->coeff)); //also works fine
printf(" X^%d", argTerm->expo);
return;
}
void printPolyNode(const PolyNode* node) { //NOT WORKING<br>
struct PolyTermPS** ppTerm = node->dataPtr;
struct PolyTermPS* pTerm = *ppTerm;
printPolyTerm(pTerm);
return;
}
【问题讨论】:
-
作业可能意味着
double*? -
那么,
const PolicyNode*?我不认为有一个 typedef 。它是const?考虑到您将其成员之一分配给非常量ppTerm?并且在任何地方都看不到printFraction()。唔。如果我们从表面上看“工作正常”的评论,你会明白的。例如:printf(" X^%d", argTerm->expo)?argTerm是一个指向指针的指针。(*argTerm)->expo可能有更多的牙齿(并且几乎编译,除了成员不称为expo,称为exponent)。简而言之。有什么东西可以编译 ??
标签: c dereference