Malloc (ms vc++)

Résolu
DeadlyPredator Messages postés 222 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 30 juin 2008 - 13 janv. 2006 à 07:25
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 13 janv. 2006 à 10:06
Bonjour,
J'ai une fonction:

char* _fastcall strLeft(const char* lpszString, const long nLength) {
char* lpszBuffer;
lpszBuffer= (char*)malloc(nLength+1);
ZeroMemory(lpszBuffer,nLength+1);
strncpy(lpszBuffer,lpszString,nLength);
return lpszBuffer;
}

J'utilise un malloc pour obtenir de l'espace en mémoire pour stocker un string mais est-ce que je dois utiliser un free pour libérer la mémoire afin d'éviter un leak de mémoire?

VIVE LE QUÉBEC!
Essayez ça

Dim l As Long: Do Until l -1: l l + 1: Loop

2 réponses

cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
13 janv. 2006 à 09:25
Bien sur! Toujours.

malloc() et après free() quand fini.
ou
VirtualAlloc() et VirtualFree()

@+
Arnotic,
Admin CS,
http://dev.winsysdev.com
MVP Visual C++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 janv. 2006 à 10:06
__fastcall est totalement inutile ici, les params passés par registres devront être PUSHés et POPés par la fonction sinon il n'en resterait aucune trace derrière malloc.
Passe en __stdcall.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
Rejoignez-nous