עבור לתוכן

איך מגדירים פונקציה שמקבלת מערך ומחזירה מערך חדש אחר ב- C++?

Featured Replies

פורסם

נגיד היא מקבלת מערך ומחזירה מערך חדש שכל איבר בו הוא מוכפל ב-2.

פורסם

int* byTwo(int*);

פורסם


int* byTwo(int* arr,int n) {
int i;
int* ret;
ret=new int[n];
for(i=0;i<n;++i) {
ret[i]=arr[i]*2;
}
return ret;
}

הקוד לא מושלם וצריך לבצע בדיקות

פורסם

שים לב שהפונקציה מקצה מערך חדש בזכרון,

ולכן אתה צריך לדאוג לשחרר אותו בהמשך באמצעות delete.

פורסם
  • מחבר

הפונקציה כאן מקבלת מערך+גודל

וגם, אני צריך שהפונקציה תהיה מסוג VOID

פורסם

אתה רוצה מערך חדש, או לשנות את המערך הקיים?

בכל מקרה, אתה יכול לשלוח פוינטר לפוינטר לפונ.

פורסם

דרך נוספת:


void byTwo(int* src, int n, int* dst) {
int i;
for(i=0;i<n;++i) {
dst[i]=src[i]*2;
}
return ret;
}

תעתיק את המערך מ-src ל-dst

אם מראש גודל המערך ידוע וקבוע, אפשר גם לעשות

void byTwo(int[N] src, int[N] dst)

(והמשך הפונקציה כמו קודם)

פורסם
  • מחבר

אתה רוצה מערך חדש, או לשנות את המערך הקיים?

בכל מקרה, אתה יכול לשלוח פוינטר לפוינטר לפונ.

רוצה מערך חדש

אבל מה שהציעו לי כאן אז הפונקציה עשתה return

ואני רוצה ללא

איך עושים פוינטר לפוינטר?

(אני שולח מערך קבוע מראש)

פורסם

טעות..

חשבתי שרצה להקצות מערך חדש.

פורסם
  • מחבר

אז לא הבנתי איך עושים...

ארכיון

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

דיונים חדשים