Bonjour à tous,
c'est plus une discussion qu'une question à proprement parler, mais j'aurais bien aimé avoir votre avis là-dessus:
Le contexte:
Une application temps réel, donc grosse contrainte de rapidité d'exécution. Pas de contraintes particulières sur la gestion de la mémoire ni la compilation.
Plateforme: windows
Compilateur: celui de visual 2005 (mais cela n'a pas d'importance je pense)
Bibliothèque: STL si besoin est.
La problématique:
J'ai une boucle du type:
- Je ne connais pas la taille du buffer que je vais récupérer avant chaque itération,et cette taille est variable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 while (!MustStop) //MustStop est modifié par un autre thread { int iBuffSize; short* source_buffer = GetBuffer(&iBuffSize); //Et là, je dois copier le buffer et faire des traitements sur la copie }
- La fonction GetBuffer(int &iBuffSize) me renvoie l'adresse du premier élément du buffer et me donne sa taille (iBuffSize).
- Je dois absolument récupérer le buffer (le copier) car je ne dois pas modifier le buffer d'origine.
Question
Où et comment allouer le buffer dans lequel je vais copier mes données? Comment optimiser l'allocation?
J'espère que je suis suffisamment clair. Si ce n'est pas le cas, je me ferais un plaisir de re-expliquer tout ça.
Toute remarque est la bienvenue; merci pour votre participation![]()
Partager