【发布时间】:2022-01-12 14:38:18
【问题描述】:
所以我想要一个名为 poly_el 的结构,它存储多项式元素的系数和幂的值(例如,3x^4 将在结构中存储为 3 和 4)。我当然希望这些是 double 类型。最终,我希望制作一个这样的元素的链表来表示一个完整的多项式。所以我使用了一个指向结构的指针,由于某种原因,指针只返回 0 而不是我分配给它的值。
这里是代码的要点:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <ctype.h>
struct poly_el {
double coeff;
double power;
struct poly_el *next;
};
int main() {
double a=10.0;
double b=20.0;
struct poly_el *spe;
spe=(struct poly_el *)malloc(sizeof(struct poly_el));
spe->coeff=a;
spe->power=b;
printf("%f coeff, %f power", &spe->coeff, &spe->power);
}
我希望它输出 10 系数和 20 功率,但它只输出 0.000。另外,我尝试过 %lf,%ld 而不是 %f 并且还尝试过使用浮点数执行相同的代码。这些似乎都不起作用。我觉得我的 a 和 b spe->coeff 和 power 的分配有某种错误。
【问题讨论】:
-
直接将值发送到 printf。
-
为什么在 printf() 调用中有
&?它应该只是spe->coeff。 -
摆脱你当前的编译器(设置)并开始使用
gcc -Wall