Folco (./122) :
Pour le pointeur, c'est en fait une chose que je fais couramment : une variable locale à dans main(), et une variable globale dans main.cpp, qui pointe sur ma variable globale.C'est dangereux ? Je devrais avoir directement ma variable dans l'espace global, avec une allocation sur le tas ?
Comme je l'ai dit, dans
main, ça passe (parce que cette fonction ne termine normalement qu'à la fin du programme), mais si tu fais ça dans une autre fonction, ça va foirer à 99%.
Et avec Qt, un autre risque concerne les
QObjects: si tu as un
QObject local et que tu détruis l'objet parent, ça va planter (parce que le système de
QObject va essayer de libérer ton objet local et pouf!). Un
QObject local devrait toujours avoir un parent nul (mais pour les
QWidgets, ce n'est pas possible sauf pour les fenêtres, parce parent nul = fenêtre justement). Le plus sûr est de toujours allouer les
QObjects avec
new.