#include "stdlib.h"
typedef short sample_t;
sample_t *duplicate(sample_t * src,unsigned int count)
{
char *p;
if(count >0)
{
p=malloc(count);
}
memcpy(src,[,count);
return p;
}
int main()
{
sample_t samples[100];
samplet_t *p;
int i;
......
p-duplicate(samples,100);
for(i=0;i<100;i++)
{
free(p[i]);
}
return ;
}
}
參考答案:#include "stdlib.h"
typedef short sample_t;
sample_t *duplicate(sample_t * src,unsigned int count)
{
char *p;
if(count >0)
{
p=malloc(count); //malloc(count)返回的是空类型,要作强制类型转换,改成p=(char *)malloc(count);
}
memcpy(src,p,count);
return p; //函数设置的返回类型是short*,而p是char*类型
}
int main()
{
sample_t samples[100];
samplet_t *p; //多打了个t,改成sample_t *p;
int i;
......
p-duplicate(samples,100); //这句是什么意思?你应该把duplicate()函数也贴出来
for(i=0;i<100;i++)
{
free(p[i]); //free()函数里面的元素是指针,改成free(&p[i]);
}
return ; //要返回一整型,一般用return 0;
}
} //多了1个}