Zo zie je maar weer hoe belangrijk goed gebruik van code-tags is: als de topic-starter gewoon [code=c++]..[/code] (of [cpp]..[/cpp]) tags om zijn code heen had gezet, had dat de helft van de discussie gescheeld.
Wat betreft concatenatie van strings met allocatie: C heeft hier geen support voor. Zelf bouwen dus, of de bestaande functies gebruiken. Je zult wel merken dat in C een heleboel dingen die in Java of zelfs in C++ vanzelfsprekend zijn, in C niet direct op dezelfde manier kunnen. Vaak zijn er wel alternatieve manieren om dat op te lossen; als je van plan bent veel in C te programmeren is het waarschijnlijk handig om je de C-stijl van programmeren eigen te maken.
Ook zul je zelf het een en ander moeten schrijven. Als het je vooral om gemak te doen is (en je wat extra geheugenallocaties geen probleem vindt) kun je met een
asprintf(..)-achtige constructie veel doen.
Overigens kunnen C++ strings zowel van (met een constructor) als naar (met
std::string::cstr()) C-style strings geconverteerd worden, dus dat zou geen probleem moeten zijn. Denk er wel aan dat constructors de inhoud van de string converteren, en de caller eventueel geheugen voor het argument nog zelf moet vrijgeven.
[
Voor 11% gewijzigd door
Soultaker op 09-04-2008 13:52
]