【新人】为啥小弟我的程序运行没有值
【新人求助】为啥我的程序运行没有值?
运行结果Scores后面没有打印东西啊。。。?
------解决方案--------------------
是什么编译器?
malloc那句都没有类型转换。
主要的问题应该是你的pf指针使用前没有初始化
你的那个初始化函数实际上已经是在使用它了
#include <stdio.h>
#include <stdlib.h>
struct flex {
int count;
double average;
double scores[];
};
void makeFlex (struct flex *, int); //为struct申请内存并为元素赋值
void showFlex (struct flex *);//打印信息并释放内存
int main (void)
{
struct flex * pf;
makeFlex (pf, 5);
showFlex (pf);
makeFlex (pf, 10);
showFlex (pf);
return 0;
}
void makeFlex (struct flex * pf, int n)
{
int index;
double total = 0.0;
pf = malloc (sizeof (struct flex) + n * sizeof (double));
pf->count = n;
for (index = 0; index < pf->count; index++)
{
pf->scores[index] = 20.0 - index / (n / 5);
total += pf->scores[index];
}
pf->average = total / pf->count;
}
void showFlex (struct flex * pf)
{
int index;
printf ("Scores: ");
for (index = 0; index < pf->count; index++)
{
printf ("%g ", pf->scores[index]);
}
putchar ('\n');
free (pf);
}
运行结果Scores后面没有打印东西啊。。。?
------解决方案--------------------
是什么编译器?
malloc那句都没有类型转换。
主要的问题应该是你的pf指针使用前没有初始化
你的那个初始化函数实际上已经是在使用它了