שאלה ב-C

itamartal

New member
שאלה ב-C

אני כתבתי משחק ב-C (שמכיל גם הרבה פונקציות שנכתבו ב-Asm), ואני רוצה שאת המפות התוכנה תפתח מקבצים. אבל, כשאני מריץ את הפונקציה fopen, התוכנה נתקעת ומופיע לי על המסך ההודעה NULL POINTER EXCEPTION או משהו דומה כזה. מישהו יודע איך אפשר לפתור את הבעיה? נ.ב. אני משתמש ב-BorlandC.
 

gilad_no

New member
תן עוד פרטים

תראה את הקוד שגורם לשגיאה. בעיקרון, כדי לפתוח קובץ צריך לכתוב:
FILE *pFile=fopen("test.dat","rb"); if (pFile) { ... fclose(pFile); } else printf("Can´t open file!\n");​
מקווה שלא טעיתי ...
 

אלדד27

New member
לא טעית, זה נכון

ואיתמר - אם אתה מקבל Null pointer exception ישר על ה fopen אז אולי לא כתבת את הפרמטרים נכון, או שאולי אתה מעביר שם קובץ שהוא בעצם NULL?
 

itamartal

New member
כתבתי

void loadMainMap(void) { file *fp; fp = fopen("C:\\Game\\Map1.map","rb+"); if ((fp = fopen("C:\\Game\\Map1.map","rb+")) == null) printf("Out of memory"); }
 

moll

New member
למה אתה פותח את הקובץ פעמיים?

אני לא יודע אם זה יכול לגרום להודעת שגיאה הזאת, אבל אתה לא אמור לפתוח את הקובץ פעמיים בעזרת fopen.
 

jolp

New member
אתה פותח את הקובץ פעמיים!

שנה את הקוד ל- void loadMainMap(void) { FILE *fp; if ((fp = fopen("C:\\Game\\Map1.map","rb+")) == null) printf("Out of memory"); }
 
למעלה