OVH Cloud OVH Cloud

Tableau dynamique

75 réponses
Avatar
Pierre CHAUVEAU
Bonjour à toutes et à tous,

Personnellement, je réalise mes programmes avec DELPHI (langage Pascal de
BORLAND) où sont définis des "tableaux dynamiques". Ce sont des tableaux
dont on peut fixer la taille (le nombre d'éléments) à l'exécution.

J'utilise ce type de tableaux pour échanger des infos entre un programme et
des DLL.

Existe-t-il l'équivalent, pour ne pas dire la même chose, dans d'autres
langages, notamment le C++ de chez Microsoft.

Sinon, comment faites-vous pour échanger entre .exe et .dll quand vous ne
connaissez pas à la compilation la taille des infos à échanger ;le nombre de
pixels de l'image en cours de traitement par exemple.

Merci de votre aide.

Pierre.

5 réponses

4 5 6 7 8
Avatar
Vincent Burel
"Loïc Joly" wrote in message
news:419918f7$0$18777$
Ma conclusion était que suivant les cas, new pouvait servir à construire
un objet, à initialiser un objet dans un emplacement mémoire pré-alloué,
ou à allouer un emplacement mémoire pour que d'autres, plus tard,
puissent y construire quelquechose.



bien sur ! comme CTRL-X dans word n'est pas une fonction d'effacement, même
si dans certains cas, CTRL-X peut faire office de fonction d'effacement...

l'interlocuteur s'est mis dans une logique "trollesque". Ayant hésité à
ton sujet, j'ai demandé des précisions.



tu as bien fait ! : -)

Elle est effectivement sympatique. N'as-tu pas réussi à lui expliquer
que CTRL-V ne permettait pas d'annuler la mise en gras, et donc n'était
pas un véritable UNDO ?



il m'a répondu, si tu fais un CTRL-C avant la mise en gras, alors le CTRL-V
annule la mise en gras ! :-)
Avatar
Thierry
Bonjour,

Alexandre a écrit :

catch(std::bad_alloc)
{
std::cerr<<"nErreur d'allocation mémoire";



if (A)
delete(A);
if (B)
delete(B);
if (C)
delete(C);

throw;
}



Aussi lourd.
Vive les pointeurs intelligents.

Loic c'est qui l'idiome RAII ? (en deux mots)

--
« Always look at the bright side of the life... »
Avatar
Alexandre
bonsoir,

ha bon, pourtant c'est la base. le B-A-BA. je l'ai déjà dit ici : la base
de
la programmation c'est savoir gérer les collections d'objet, les stocker,
les compter, les trier, les retrouver. Donc, je conseille au débutant de
commencer pas la base.



le posteur ne demandait pas à apprendre la base, il cherchait l'équivalent
en C++ d'un type existant en pascal.
D'accord que la connaissance des structures de donénes est essentielle pour
le programmeur.
Avatar
Alexandre
bonsoir,
Aussi lourd.
Vive les pointeurs intelligents.



ok, mais on change de sujet là.
On rajoute encore une couche, je n'ai rien contre, au contraire, on
s'éloigne du malloc ;-))


Loic c'est qui l'idiome RAII ? (en deux mots)

--
« Always look at the bright side of the life... »


Avatar
Loïc Joly
Thierry wrote:

Loic c'est qui l'idiome RAII ? (en deux mots)



RAII, ça veut dire Ressource Acquisition Is Initialisation. Ce qui ne
veut pas dire grand'chose.

En clair, ça veut dire qu'à chaque fois qu'on a le shémas ressource à
allouer puis désallouer (pointeur, handle sur un objet d'IHM, mutex...),
au lieu de faire :

{
ressource = allouerRessource();
// Code
libererRessource(ressource);
}

On crée un objet prenant la ressource dans son constructeur, et la
libérant dans son destructeur. On utilise ensuite la ressourece ainsi :

{
RessourceHandler h(allouerRessource());
// Code
}

Du coup, la libération est faite toute seule, quelle que soit la façon
dont on quitte le code (par exemple, même par une exception lancée au
beau milieu du code..)

--
Loïc
4 5 6 7 8