#include <ctime>
#include <iostream>
#include <cstring>
int main()
{
struct tm tm ;
//memset(&tm, 0, sizeof(struct tm));
strptime("1 Jan 2000 13:00:00", "%d %b %Y %H:%M:%S", &tm);
time_t t =mktime(&tm);
std::cout << ctime(&t);
return 0;
}
g ++ -Wuninitialized -O2 test.cpp ne prévient pas que tm n'a pas été initialisé. Valgrind le fait jusqu'à ce que la ligne memset soit ajoutée. les pages Man pour strptime sous Linux disent qu'il devrait être initialisé et je voyais des dates aléatoires sur un programme plus compliqué jusqu'à ce que je l'initialise. Existe-t-il des indicateurs GCC qui produiront un avertissement dans ces circonstances?GCC -Wininitialized pas d'avertissement sur les structures non initialisées
Quelle version de GCC? –
gcc version 4.4.5 (Debian 4.4.5-6) – Sard