Attention a la sémantique de ces 2 syntaxes : c´est un probleme tres vicieux
float *tab = new float[N];
et
float *tab = new float(N);
Le premier crée un tableau de float, de N éléments.
Le second est a éviter absolument :
Il crée un double dynamique (UN SEUL !! !) donc l´adresse est tab
Il est la meme chose que :
float* tab = new float;
a un bémol pres : il appelle un constructeur, ce constructeur de int (car N est un int) pour float, est casté, et la valeur de N est donnée au float.
Concretement, si vous faites la deuxieme syntaxe (avec les parentheses)
tab[1] -> Hors de tableau, risque de plantage !!
tab[0] = N.