Hej Oftast beror det på att minnet inte räcker. Malloc använder man dock i C. I C++ använder du new och delete. Tack Hej! Tack Löst Varför skulle en öppen fil hindra dig från att allokera minne? Gör dig själv en tjänst och byt från malloc/free till new/delete...Problem med att allokera
Jag är totalnybörjare på VC++ och har problem med malloc, jag vil allokera lite minne men får värdet null.
Exempel
int *buf;
buf = (int *) malloc( value1 * value2 * sizeof (int));
Detta buf ger nu alltså värdet NULL. Vad betyder detta? Känns som om det inte ska vara null. Vad kan felet ligga i? Antar att det finns en del saker.
Tacksam för svar
// DanielSv: Problem med att allokera
Sv: Problem med att allokera
Men om jag nu vill använda malloc och jag är helt säker på att det verkligen finns tillgängligt minne? Jag kör samma program både som "program" och som en webservice och som ett program så funkar det. Kan det ha med rättigheter att göra?
// DanielSv: Problem med att allokera
Testa:
<code>
int *buf;
buf = malloc(sizeof (int));
*buf = value1;
//Eller om value1 är en int pekare.
*buf = *value1;
</code>
/HåkanSv: Problem med att allokera
Men jag får problem... Det blir ett C2440, can not convert from void * to int *.
Om jag är säker på att syntaxen är rätt (det har även funkat tidigare när jag kört
som webservice), kan det då finnas något skrivrättighetsproblem?
// DanielSv: Problem med att allokera
... tror jag.
Problemet verkar ha varit att jag skulle skriva till en fil som jag skapat med FileStream tidigare och glömt att stänga den. Jag antar att eftersom inte filströmmen var stängd så gick det inte skriva till filen och därav kunde jag inte allokera något minne.
Har jag rätt?
// DanielSv: Problem med att allokera