Pouf, j'ai deux soluces:
surdimmensionnement ou liste:
struct{ de element et pointeur de struct}
Sinon, je vois pas (ou je ne me rappel plus, ca fait quand meme longtemps que je n'y ai pas touché à ce genre de dynamique).
pour add: suffit de faire un
p.next = (truc*)malloc(sizeof(truc));
p.next.val=elmt;
p.next.next = NULL;
heu malloc et new, c'est pareil sauf que c'est du C
tiens, ca peut aussi introduire une question:
Est-ce que l'OS fournit un bloc de memoire entier ou partitionné lors d'un appel à new?
Une remarque: quand tu tapes:
double * tab=new doube[taille];
ca revient à taper:
double tab[taille]; , sauf que tu fait appel à un truc de plus: new (pas bien pour l'allocation et portée), donc essai
double * tmp;
//traitement
tmp = new double[taille];
Mais bon, cette methode est pas terrible puisque si tu veux en changer la taille, il faut copier tous tes elements pour les remettre dans le nouveau tableau. Donc: complexite n
D'autant plus qu'il y aura,; à un moment donné deux instance de tableau à chaque modification. Entassement des free, new et copy, c'est plutot nul (et il faut bien penser à les effacer!!!) , mais bon, je peux me tromper! :)