27-01-2006, 13:09
|
|
|
|
חבר מתאריך: 20.06.03
הודעות: 5,616
|
|
מה לא ברור?
בתגובה להודעה מספר 1 שנכתבה על ידי ASHVAK שמתחילה ב "C++| פונקציה מסוג char לא מצליחה להחזיר לי מערך של charים..."
השגיאה היא יותר מברורה:
קוד:
error C2440: 'return' : cannot convert from 'char [255]' to 'char'
הפונקציה מוגדרת להחזיר ערך מסוג char, או "תו" בודד (ערך מספרי בין 0 ל-255).
אתה מנסה להחזיר מערך של char ולא תו בודד, על מנת להחזיר מערך של char
כמובן שישנן פונקציות שמחזירות מצביע, אך אתה לא זקוק לזה במקרה זה.
כאשר אנו רוצים שפונקציה "תחזיר" לנו מערך, יותר פשוט לשלוח לפונקציה מצביע למערך
ולעדכן את אותו מערך באמצעות המצביע.
דוגמה לקלט שורה באמצעות getch:
קוד PHP:
cahr ch, buffer[MAX], x=0;
while((ch = getch()) != '\r' && x < MAX) buffer[x++] = ch;
buffer[x] = '\0';
printf("%s", buffer);
שים לב שאם זה היה תוכן של פונקציה, היה ניתן לשלוח את buffer כארגומנט לפונקציה
במקום להכריז עליו, וגם ניתן היה לדאוג להגדילו בצורה דינמית במקום לספק גודל מקסימלי.
|