[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux] C++ / C re-question



Salut a tuti,

Je me posais une chtite question en cpp: Lorsque je definis ceci:

class machin {

private:

public:

    operator char* ();

};

machin::operator char* () {
 char buf[10];
 sprintf(buf, etc..)
 return buf;
}


(ceci est tiré du cours de Cpp de Vilvens) ..

Je me suis toujours dis que les variables declarées dans une fonction le
sont sur le stack (ben j'en suis certain, sinon, pas de buffer overflow ..),
donc cette chaine de caractere est bel et bien definie sur le stack et au
retour de la fonction, cette valeur ne devrait plus etre valide ... si
j'avais aloué sur le heap par un new, ca serait ok; mais la ....

kkun peut m'expliquer ca ?

Merci

JeF


[ Soyez précis dans vos sujets svp afin de déterminer directement  ]
[ le type de demande...                                            ]
[ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php     ]
[ http://LinuxBe.org              Contact: listmaster@linuxbe.org  ]