שאלה ב-C

MaorCS

New member
שאלה ב-C

אני רוצה לשלוח מערך לפונקציה, ואני מקבל סינטקס ארור. הפרוטוטייפ שלי נראה ככה: fill_array (int *a) קראתי לפונקציה ככה: fill_array(int &a) ואת המערך הגדרתי ככה: int a[N]; מה יכולה להיות הבעיה?? דרך אגב, איך מיישרים פה את ההודעה לשמאל?
 

the another one

New member
הבעיה היא

שלפנוקציה אתה לא צריך לקרוא ככה
fill_array(int &a);​
אלא בלי ה INT
 

MaorCS

New member
עובד, תודה.

הורדתי את הint וקיבלתי שוב ארור על ה & הורדתי גם אותו ועבד..
 

the another one

New member
מתקמפל. לא עובד.

הפונקציה מצפה לקבל כתובת של משתנה - אתה שולח לה את הערך שלו. לכן את הפעולות שאתה חושב שהיא תעשה על הערך של המשתנה - היא בעצם תעשה על הכתובת. תבדוק את הדבר השני שכתבתי לך.
 

ahab

New member
למה לא עובד?

שם של מערך משמש ככתובת לתחילת המערך.
 

the another one

New member
עוד משהו

מה זה N ? אם זה משתנה - אסור לך להגדיר ככה את המערך! בשביל זה יש הקצאה דינאמית.
 

ahab

New member
לא קשור לשאלה, אבל..

אם N הוא קבוע (define ב-C, ו-define או const ב-++C), אז כמובן שאפשר להגדיר גודל של מערך בעזרתו.
 

the another one

New member
למרות זאת......

ב UNIX, גם אם N משתנה - זה יתקמפל ויעבוד.
 

MaorCS

New member
אם כבר אתם פה.. :) נתקעתי שוב..

כולה כתבתי לו mid=last/first; כולם מוגדרים כ-int וברגע שהוא מגיע לפקודה הזאת על המסך כתוב לי divide eror מה קורה פה??
 
למעלה