Je suis de la création d'une sorte de page de garde pour un programme. Pour lancer le programme que je suis en utilisant l'appel CreateProcess()
, ce qui, entre autres choses, reçoit un pointeur vers une STARTUPINFO
de la structure. Pour initialiser la structure que j'ai utilisé pour le faire:
STARTUPINFO startupInfo = {0}; // Or even '\0'.
startupInfo.cb = sizeof(startupInfo);
Lors de la compilation du programme avec GCC en permettant à ces ensembles d'avertissements -Wall -Wextra
il me donne un message d'avertissement disant qu'il y a un manque d'initialiseur pointant vers la première ligne.
warning: missing initializer
warning: (near initialization for 'startupInfo.lpReserved')
J'ai donc fini par le faire:
STARTUPINFO startupInfo;
memset(&startupInfo, 0, sizeof(startupInfo));
startupInfo.cb = sizeof(startupInfo);
Et de cette façon, le compilateur ne donne pas d'avertissement.
La question est, quelle est la différence entre ces façons de l'initialisation d'une structure?
À l'aide de la première méthode, n'est-ce pas la structure initialisée?
Qui voulez-vous recommander?
Merci pour votre temps.
P. S.: Désolé pour le titre, je ne pouvais pas penser à un meilleur.