03-12-2009, 22:20
|
|
|
חבר מתאריך: 30.07.05
הודעות: 949
|
|
יש 4 דברים שממש צורמים לי לעין בקוד שלך:
1) בבקשה, כשאתה מפרסם קוד, ובמיוחד כשמדובר ביותר ממספר שורות של קוד אלא מספר פונקציות, אנא השתמש בתגיות ה-CODE או ה-PHP ע"מ ליישר את הטקסט כהלכה, ואנא הקפד עד הזחות נכונות.
ככה הקוד שלך נראה בגירסתו הקריאה:
קוד PHP:
#include <iostream> #include <string>
using namespace std;
struct ListEntry {
char name[80]; int idnumber; ListEntry *next; } start, *node;
void add(); void display();
void main() { int choice;
do {
cout << "Choose option from the menu below:"<<endl<<endl; cout << "[1] Insert Name"<<endl; cout << "[2] View the list"<<endl; cout <<endl<< "Enter your choice: "; cin >> choice; if(choice ==1) add();
if(choice ==2) display(); else exit(1); } while (choice != 3);
}
void add() { char choice; start.next = NULL; node = &start; do {
node->next = (struct ListEntry*) (sizeof(struct ListEntry) ); node = node->next; cout << "Enter an ID Number:"; cin >> node->idnumber; cout << "Enter a Name:"; cin >> node->name;
cout << "Record saved. Input another? (Y, N): "; cin >> choice;
node->next = NULL; } while (choice == 'Y' || choice == 'y');
}
void display() {
node = start.next;
while (node) { cout << node->idnumber << "\t" << node->name << endl; node = node->next; } cout << endl; }
2) אתה טוען שאתה כותב ב-++C, אולם מלבד העובדה שאתה משתמש בספריית ה-I/O של ++C שאר הקוד שלך הוא C רגיל לחלוטין....
אין בקוד שלך ניצול של היכולות מונחות העצמים של ++C שמבדילות אותו בעצם מ-C הרגיל...
אפילו ספריית המחרוזות אותה צרפת, string, לא מתבטאת בקוד שלך, ואתה משתמש במערך char-ים רגיל...
כמו כן, השימוש שלך ב-malloc שהיא פונקציה של C לעומת השימוש ב-new של ++C רק מחזקת את מה שאמרתי להעיל...
3) main היא פונקציה שמחזירה int. הקומפיילר סלחן לגבי הטעות הזו, אבל הוא עדין מתקן את הטיפוס ל-int. הפונקציה main מחזירה ערך למערכת ההפעלה.
main היא פונקציה שמחזריה int
4) הערות ותיעוד - הן לא מילים גסות...
בקשר לבעיה שלך - אני רואה שהיא כבר נפתרה, אז בהצלחה בהמשך
נ.ב
במעבר זריז על הקוד שלך:
אין לך שום טיפול בזיכרון שהקצאת - מה שלקחת צריך להחזיר.
שים בסיומה של main קוד שישחרר את הזיכרון שהוקצא עבור הרשימה שלך...
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.
נערך לאחרונה ע"י Dark Knight בתאריך 03-12-2009 בשעה 22:41.
|