Possible en double:
Do the parentheses after the type name make a difference with new?Quelle est la différence entre `new` et` new() `pour une structure en C/C++?
Dans un code, je l'ai vu récemment un struct comme celui-ci:
typedef struct MyStruct {
int numberOne;
int numberTwo;
} MYSTRUCT;
Plus tard, j'ai essayé instancier un de ces struct utilisant
MyStruct *pStruct = new MyStruct();
qui a bien fonctionné avec Visual Studio 2010, mais a échoué avec une erreur de lien obscure sur un autre compilateur. Il a fallu un certain temps avant de découvrir que l'omission des accolades comme ceci
MyStruct *pStruct = new MyStruct;
a résolu le problème. Alors, quelle est exactement la différence entre ces deux invocations et laquelle est la bonne à utiliser?
Je pense que vous avez un typedef redondant (ou un nom manquant pour le typedef), aussi 'new' renvoie un pointeur pas un objet. –
typedef struct MyStruct { int numberOne; int nombreTwo; }; est une erreur –
@Armen: En fait, aucune des lignes d'origine ne devrait avoir été compilée. Que je suis bête. – bastibe