שינוי מיקום מבציע בקובץ C - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שינוי מיקום מבציע בקובץ C


omer1595

Recommended Posts

אני צריך לבנות פונקציה שתשנה ותחזיר את המיקום של פוינטר בקובץ. בניתי פונקציה אבל קיבלתי ארור מוזר אשמח אם תוכלו לעזור לי לתקן אותו:

void del(FILE *fin,char *name) 
{
struct book b;
char name2[80];

fseek(fin,-sizeof(b),SEEK_CUR);
fread(&b,sizeof(b),1,fin);
strcpy(name2,b.name);
search(fin,name);
fwrite(&b,sizeof(b),1,fin);
search(fin,name2);
}

void* search(FILE *fin, char name[])
{
struct book b;

rewind(fin);
do
{
fread(&b,sizeof(b),1,fin);
fseek(fin,( b.indexName)*sizeof(b),SEEK_SET);
}
while( strcmp(b.name,name)!=0 && b.indexName!=-1 );
if(b.indexName==-1)
puts("there is no such book");
fseek(fin,-sizeof(b),SEEK_CUR);
}

(הstruct מורכב בין היתר מIndexAthor שמצביע לשורה הבאה (מיון מסוג מסוים שלא חשוב לפרט כרגע))

הERROR שאני מקבל הוא:

'void *(FILE *,char *)' differs in levels of indirection from 'int ()'

הארור לא מראה מיקום מסויים אלא את כל הפונקציה, ובמידה ואני מוחק את הקריאות לפונקציה (בפונקציה del) הארור נעלם....

מקווה שהבנתם ותוכלו לעזור.. אם לא אז תכתבו פה מה לא הבנתם ואני אסביר

תודה רבה לכל מי שיעזור :)

קישור לתוכן
שתף באתרים אחרים

הסבר לבעיה, אגב: בקומפיילרים מסויימים של C, אם אתה משתמש בפונקציה בלי להצהיר עליה, אז הוא "מנחש" עבורך שזו פונקציה שמחזירה int. הוא צעק עליך כי הוא חשב שהגדרת אותה מחדש כפונקציה שמחזירה *void.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...