【发布时间】:2023-04-15 03:55:01
【问题描述】:
C 代码中的分段错误仍然存在问题。当我第 8 次调用函数 current_live_read(ainpath); 时,我得到了错误:No source available for "_int_malloc() at 0x25be2"
主函数如下所示:
void current_read(void)
{
system(AINinit);
char *ainpath;
ainpath=init_current();
int *current;
float avgcurr=0;
float allcurr=0;
int i=0;
while(1)
{
//sleep(1);
i++;
current=current_live_read(ainpath);
allcurr=allcurr+*current;
avgcurr=allcurr/i;
printf("\n Current: %d AVG: %f", *current, avgcurr);
//free(current);
}
}
current_live_read(ainpath); 是这样的:
int *current_live_read(char *ainpath)
{
//ainpath=init_current();
int curr;
FILE *file = fopen(ainpath, "r");
//free(ainpath);
if(!file)
{
printf("Error opening file: %s\n", strerror(errno));
}
else
{
fscanf(file, "%4d", curr);
fclose(file);
//*current=curr;
}
free(file);
return curr;
}
我知道指针可能有问题,但我不知道是哪一个以及我能做些什么。
【问题讨论】:
-
另外,请注意永远不要在
FILEs 上使用free。只给他们打电话fclose。
标签: c embedded beagleboneblack