Bonjour
Je dois acquerir des données, et supprimer les plus vieilles pour les remplacer par les plus récentes, en gardant les n dernieres données en mémoire.
J'ai bien une idée mais je voulais savoir si c'est correct.
soit des données en int, voilà comment je ferait :
initialisation
ensuite a chaque fois qu'on enregistre de nouvelles données :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //soit TAILLE la taille d'un jeu de donnée. //soit N le nombre de buffers à garder en mémoire int ** buffer; buffer = (int *)malloc(N*sizeof(int*)); //ici une boucle pour chaque buffer[i] on fait un malloc de taille sizeof(int)*TAILLE
on décale les pointeurs des données.
Sachant que dans buffer[n-1] on a les données les plus récentes et dans buffer[0] les plus vieilles.
Est ce que c'est une bonne solution?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //on fait pointer le dernier element vers l'adresse des données les plus vieilles buffer[N-1] = buffer[0]; //decalage des données for(i = 0 ; i < N-1 ; i++) { buffer[i] = buffer[i+1]; } //on fait l'acquisition des nouvelles données dans le dernier élement acquerir_donnees(buffer[N-1]);
merci
Partager