החזרת מערך ב ++C

melman

New member
החזרת מערך ב ++C

שלורב - אשמח אם מישהו יוכל לראות את מה שאני לא יכול לראות. אני לא מבין איך אני אמור לקבל חזרה את המערך מן הפונקציה Sieve? אשמח באם מישהו יוכל לתרום לי מידיעותיו וזמנו...
#include <iostream.h> const int SIZE =1000; bool Flag (int arr[],int index); int Sieve (int arr[]); void main () { int num[SIZE]; for (int i=0;i<=999;i++) { num=i+1; } Sieve(num); } bool Flag (int arr[],int index) { int flag=1; for (int i=index;i<=SIZE;i++) { if (arr[index]=0) { flag=flag*1; } else { flag=0; } } if (flag==1) { return 1; } else { return 0; } } int Sieve(int arr[]) { int i=4; for (int x=3;x<=SIZE;x++) { if (x%2==0) arr[x]=0; } do { if (arr!=0) { for (int j=(arr+1);j<=SIZE;j++) { if ((arr%j)==0) arr=0; } } Flag(arr,i); i++; } while (Flag); return arr; } רב תודות!!!
 

DadleFish

New member
אתה לא צריך להחזיר מערך מהפונקציה

ברגע שהעברת את המערך - העברת בעצם מצביע אל המערך לפונקציה, ולכן כל פעולה שתעשה על המערך תגרום לשינוי במערך "המקורי". שים לב שאחרי הקריאה לפונקציה המערך שלך פשוט ישתנה. חוץ מזה, הסטנדרט לפיו אתה כותב הוא רע מאוד. איפה אתה לומד?
 

melman

New member
תודה! איני לומד מדעי המחשב

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

selalerer

New member
מה שאנחנו מדברים עליו הוא מעבר לפור

מט, מדובר על דברים שאינם נחשבים ++C סטנדרטי ואף לא יעבדו לך בקומפיילר שמקפיד על הסטנדרט, דברים אחרים שם ייגרמו לתוכנית שלך להשתמש בגרסאות ישנות של פונקציות סטנדרטיות שיש כנראה סיבה למה שינו אותן מאז.
 
למעלה