Problem mit malloc()
-
Hi ich will in meinem Programm malloc() benutzen also hab ich mir das bsp in der msdn angeschaut das so ausschaut
/* MALLOC.C: This program allocates memory with * malloc, then frees the memory with free. */ #include <stdlib.h> /* For _MAX_PATH definition */ #include <stdio.h> #include <malloc.h> void main( void ) { char *string; /* Allocate space for a path name */ string = malloc( _MAX_PATH ); if( string == NULL ) printf( "Insufficient memory available\n" ); else { printf( "Memory space allocated for path name\n" ); free( string ); printf( "Memory freed\n" ); } }
nun also ab in meine app und genau so probiert
char *buffer;
buffer = malloc(2000);leider kann ich aber so nicht compilen
error C2440: '=' : 'void *' kann nicht in 'char *' konvertiert werden
habs doch auch genau so gemacht
hoffe mir kann iener was dazu sagen
-
string = (char*)malloc( _MAX_PATH ); // in C++ einfach char* string = new char[_MAX_PATH];
-
dein Problem ist, dass du ein C Programm versuchst mit einem C++ Compiler zu kompilieren. In C++ wird void* nicht implizit nach T* gecastet, daher musst du ein Cast benutzen, dieser ist aber in C verpöhnt, da er zu Problemen führen kann (such mal per Forensuche danach, dass wurde schon tausend mal erklärt)
btw.
kenn ich keinen malloc.h Header und void main ist nicht gut, du solltest lieber int main benutzen!
-
BTW: Wenn du C++ programmierst, solltest du nicht im C-Forum fragen.