[so] [Tema1] LPWSTR vs char*

Andrei Petre p31andrei at gmail.com
Sun Mar 17 15:45:10 EET 2013


Salut,

Eu am niste probleme cand folosesc typedef-urile din windows, ca
LPWSTR. Mai exact, codul urmator produce o eroare, dupa ce sunt facute
niste strcat-uri (e scheletul de la voi, nu e modificat).

LPTSTR argv = NULL;
argv = get_argv(s); // comanda este > k=a (variabila de mediu)

free(argv); //produce eroare

eroarea este "CRT detected that the application wrote to memory after
end of heap buffer". Am cautat pe net, si e din cauza ca n-are \0
chestia la care dau free. Deci e o problema cu faptul ca acel typedef
de windows wchar_t* echivalent cu LPTSTR e pe 2 octeti.

Daca schimb in schelet LPTSTR cu char* totul e ok. Cred ca e din cauza
ca se fac alocari fara si realloc sa se foloseasca sizeof() in
schelet, dar am incercat sa-l repar rapid si n-am reusit. N-as mai
pierde timpul cu asta, si as schimba direct sa folosesc char* in loc
de LPTSTR, este OK cu voi?

Merci.

-- 
Andrei Petre


More information about the so mailing list