我得到這個錯誤:錯誤:圍繞堆棧變量 'PTEMP' 被損壞
(Stack around the variable 'ptemp' was corrupted.)
我的代碼
list crea_lista(list l, FILE *fp, FILE *fp2){
char ptemp[11];
char ptemp2[11];
element el;
el.numero_volte=1;
while(!feof(fp)){
fscanf(fp,"%s",ptemp);
while(!feof(fp2)){
fscanf(fp2,"%s",ptemp2);
if(strcmp(ptemp,ptemp2)==0){
el.numero_volte=el.numero_volte+1;
}
}
strcpy(el.parola,ptemp);
l=insord(l,el);
el.numero_volte=1;
fflush(stdin);
rewind(fp2);
}
return l;
}
我怎樣才能解決這個問題?
'while(!feof(fp)){'是反模式,[不使用它](http://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-錯誤) –
您可能導致緩衝區溢出;將'%s'更改爲'%10s'並重試。此外,'fflush(stdin)'會導致未定義的行爲,並且您沒有顯示'el.parola'是如何初始化的 –