עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

פורסם

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

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) הארור נעלם....

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

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

פורסם

האם דאגת להצהיר על הפונקציה search איפשהו לפני ההגדרה של del?

פורסם
  • מחבר

וואי תודה רבה!! :yelclap:

עזרת לי מאוד :)

ישר כוח!

פורסם

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

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.