18. maj 2003 - 12:32
Der er
5 kommentarer og 1 løsning
Dynamisk buffer...
Hej, så er jeg tilbage... Hvordan laver man en dynamisk buffer?? Jeg har læst lidt rundt omkring, at man kan bruge noget STL - vector?? jeg læser indputtet fra en pop3 server. bruger jeg kommandoen list... får jeg 1 1055, hvor 1055 er størrelsen på en mail... JEg vil jo så gerne have en buffer som har størrelsen 1055+1... Nogle gange kan en mail jo så være 1024244 størrelsen... Nogle som forstår mit problem?? Jeg kan jo ikke bruge en buffer[100000000], det vil jo tage for meget plads... :)
Annonceindlæg fra Deloitte
En vector er et STL objekt som er et ægte dynamisk array. Jeg tror dog ikke at det lige er sagen til din problem stilling. int len = ...; char *buf = (char *)malloc(len+1); eller int len = ...; char *buf = new char[len+1]; tror jeg bedre passer til problem stillingen.
Arne, er der ikke noget med new er en C++ funktion, og malloc en C?? Jeg koder jo til linux, og bruger compileren GCC, så går udfra jeg skal bruge malloc()??
Eller hvis man er til (subjektiv) nemmere syntaks: char *buf = new char[len+1] [..] delete [] buf;
Kan du ikke bare allekere en Buffer fra Heap'en eg: unsigned char* MyBuffer; MyBuffer = malloc(1024*50); Nu har du en buufer på 50 kb. For at deallokere din buufer, kalder du: free(MyBuffer);
new er C++ malloc kan bruges både i C og i C++ i C++ vil new nok anses for kønnest GCC indeholder både C og C++ Du kan oversætte C med gcc kommandoen og C++ med g++ kommandoen.
malloc memory frigør man med free new memory frigør man med delete
Kurser inden for grundlæggende programmering