
10-10-2008, 03:40
|
|
מנהל
|
|
חבר מתאריך: 26.07.08
הודעות: 6,473
|
|
|
[C] שגיאת Assertion בזמן ריצה
כתבתי קוד קטן וזה חלק ממנו:
קוד:
char test(int num)
{
char *myStr;
int n;
n = sprintf(myStr, "%s", num);
// a bit more code here...
}
זו השגיאה שמוצגת לי:

אין לי מושג מה רוצים ממני שם...
בהתחלה, המשתנה ששמו "myStr" היה לו השם "str". שיניתי את השם כי חשבתי שאולי זה הגורם לבעיה...
לא כתבתי בקוד שום דבר עם NULL.
הספריות שכללתי הם:
קוד:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
אני כותב את הקוד ב- Visual Studio 2005
אז מה הבעיה?
תודה!
עריכה:
נזכרתי בעוד דבר קטן שהיה לי.
לפני כן הקוד היה כזה:
קוד:
char buff[50], *myStr;
int n;
n = sprintf(buff, "%s", num);
myStr =& buff;
וקיבלתי שגיאה בזמן קימפול:
ציטוט:
|
error C2440: '=' : cannot convert from 'char (*)[50]' to 'char *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
|
למה הבעיה הזו? המצביע והמערך הם מאותו סוג - char.
נערך לאחרונה ע"י dorM בתאריך 10-10-2008 בשעה 03:47.
|