-1
這是我的代碼着副本的strcpy
的strcpy犯規的yytext中複製yytext中
任何建議,爲什麼?
這些都是我的全局
char** v; /* array of variables and their values */
int i;
一些名稱定義
WORD [a-zA-Z]
DIGIT [0-9]
這些都是美國
<VAL>"\"".+"\"" {int x=sizeof(yytext);
v[i]=(char*)realloc(v, x*sizeof(char));
strcpy(v[i],yytext);
i++;
BEGIN(INITIAL);}
<VAL>. { i--;printf("error");}
<SAVE_VAL>{WORD}[{WORD}{DIGIT}_]* {
if (NULL==v){
v=(char**)realloc(v, 100*sizeof(char*));
i=0;
}
int x=sizeof(yytext);
v[i]=(char*)realloc(v, x+2);
strcpy(v[i],yytext);
i++;
BEGIN(VAL);
}
val" " {BEGIN(SAVE_VAL);}
這是yywrap
int yywrap(void){
return 1;
}
這是主要的
int main(void) {
yyin=fopen("input.txt","r");
yylex();
fclose(yyin);
這是循環打印字符串
for (int j=0;j<100;j++){
if (NULL==v[j])
break;
printf("%s",v[j],i);
}
}
}
我特林上 VAL一個= 「asdasd」 運行;
我期待它打印 a
asdasd