error: '未声明的(在此函数中首次使用)

  • 本文关键字:函数 未声明 error c
  • 更新时间 :
  • 英文 :


我有一个名为store.h的头文件,其中包含一个结构体和我的main位于E.c,我目前遇到一个错误,我无法理解为什么会发生。如有任何帮助,不胜感激

store.h:

struct st{
char *buf,*var;
int line_number;
char *keywords;
char *operators;
};

欧共体

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "store.h"
#define max 1000000
int main(int argc,char *argv[]){
FILE *fp;
int ag=0;

fp=fopen( argv[1],"r");
if(fp==NULL){
printf("error cannot open filen");
exit(1);
}                                  
while(feof(fp)==0){  
*buf=fgets(*buf,max,fp);

// irrelevant commands follow

}
fclose(fp);
}

*buf=fgets(*buf,max,fp);上我得到error:‘buf’ undeclared (first use in this function),但是我已经在我的结构体中声明了它,并且我已经包含了包含该结构体的文件,我错在哪里?

  1. buf是结构体的成员。
  2. 你需要定义struct对象。
  3. 需要为buf分配内存
  4. 你不应该给buf分配返回值,因为它可能导致内存泄漏
  5. 为什么" while (!feof (file)) "总是错的?
int main(int argc,char *argv[]){
FILE *fp;
struct st s;
int ag=0;
s.buf = malloc(max);
if(!s.buf) exit(2);
fp=fopen( argv[1],"r");
if(fp==NULL){
printf("error cannot open filen");
exit(1);
}

while(fgets(s.buf,max,fp)){  
/* ...*/ 
}
/* .... */

最新更新