Une histoire de vector [C++] (2) - C++ - Programmation
Marsh Posté le 24-03-2011 à 18:21:59
Tu veux stocker deux dates (struct tm), tu dois donc creer deux structures.
De deux choses l'une, soit tu alloues dynamiquement dans ta fonction une nouvelle structure a chaque appel. Dans ce cas, il faudra penser a liberer la memoire.
L'autre solution (qui est meilleur imho), est de passer en paremeter un pointeur vers une structure tm:
Code :
|
Marsh Posté le 24-03-2011 à 18:42:13
Je viens de faire ta deuxieme technique. Tout se passe bien sauf qu'a l'exit de la fonction, il n'update pas les valeurs et l'objet date1 est toujours a son status initial.
J'ai rate une etape ?
Edit: Je commence a piger ces histoires de pointers. timeinfo = localtime ( &datetime ); faisait qu'il prenait aussi l'adresse de datetime qui est une variable locale (donc detruite a la fin de la fonction). *timeinfo = *localtime ( &datetime ); a regle le probleme. Merci encore
Marsh Posté le 24-03-2011 à 20:17:33
Autant pour moi, j'ai oublie que localtime utilisait une variable statique ...
Tu dois donc faire une copie de la struct tm:
Code :
|
Marsh Posté le 25-03-2011 à 01:20:12
Bon je reviens avec un autre probleme cette fois-ci :
Je n'arrive pas a trouver la bonne ecriture pour pouvoir acceder (si c'est possible ?) a l'information que j'ai souligne sachant que l'appelle a la base dans la fonction est
Code :
|
J'ai beau aller sur http://www.cplusplus.com/reference/stl/vector/ il n'y a que quelques fonctions qui marchent comme instrument.size() qui retourne bien 26. Seulement, j'aimerais bien acceder a la valeur '1D' et tous les instruments[0], instruments.at(0) etc. ne marchent pas
Marsh Posté le 24-03-2011 à 17:53:39
Bonjour tout le monde,
Bon, m'etant lance dans C++, j'ai actuellement encore du mal a gerer les histoire de pointeurs. Par exemple dans mon main j'ai :
Avec comme fonction que j'ai code :
Comme tu t'en doutes, tm_today_date1 est aussi modifie quand il passe au second calcul soit au final, date1 identique a date2. Qu'est ce que je dois faire pour changer ce fait ? Je sens qu'il y a peu a faire mais je bloque sur 'quoi'.
Merci d'avance.
Message édité par Profil supprimé le 25-03-2011 à 01:17:40