【新人】为啥小弟我的程序运行没有值

【新人求助】为啥我的程序运行没有值?
#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后面没有打印东西啊。。。?

------解决方案--------------------
引用:
Quote: 引用:

你这个能过编译?
可以。。。


是什么编译器?
malloc那句都没有类型转换。
主要的问题应该是你的pf指针使用前没有初始化
你的那个初始化函数实际上已经是在使用它了