Archief - C++: kan mij iemand inleiden...

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

wlibaers

Legacy Member
De reden waarom het char* is en niet char: wat je terug wil sturen is geen char, maar een char array. Vermits dat niet kan in C++, stuur je in de plaats een pointer terug.

Gebruik de string class als je dit soort dingen wil doen. Of maak een char array op de heap en return een pointer naar die array (complexer, zou in een groot programma door een vergeetachtigheid geheugenlekken kunnen veroorzaken). De code daar is, in complexere situaties, onbetrouwbaar. Om een mogelijk probleem te illustreren:

Code:
int main() // ook in modern C is dit correct, niet alleen in C++
{
char invoer1[1024]; // buffer overflow bug, typ niet meer dan 1023 letters
char invoer2[1024];
char *uit1, *uit2;
reverse abc;
cout<<"Typ een woord: ";
cin>>invoer1;
cout<<"Nu een ander: "; // niet hetzelfde woord gebruiken!
cin>>invoer2;
uit1 = abc.twist(invoer1);
uit2 = abc.twist(invoer2);
cout<<"antwoorden: "<< uit1 << " " << uit2 << endl;
return 0;

Als je pointers en functies begrijpt is het zeer eenvoudig te weten wat hier gebeurt. Indien niet, dan kan je lang zoeken (zeker doen, goeie oefening, ga er desnoods stap voor stap door met de debugger).


Ik zou een goed boek aanraden om wat meer over pointers te leren.

Expert C Programming
Peter van der Linden

Dat is wel een C boek, en op zich niet echt geschikt om de taal te leren, zeker niet geschikt om C++ te leren. Maar zijn uitleg over pointers is wel heel goed. Zoek het desnoods eens in een bibliotheek, 't is een vrij kort boekje.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan