Dans main()
- p et pt ne sont pas initialisés et contiennent n'importe quoi. *p et *pt peuvent potentiellement accéder à une zone illégale.
- De toute façon, on compare n'importe quoi avec NULL (== est un opérateur de comparaison) et on ne fait rien du résultat de la comparaison.
- De plus, on compare *p et *pt qui sont des int avec NULL qui est un pointeur void* ce qui n'a de toute façon pas de sens
- A supprimer
- n'a pas de sens : p et pt sont des pointeurs (adresses) et tab est un int
- A supprimer
tab=(int*)malloc(n*sizeof(int));
- Inutile en C de caster le retour de malloc() : la conversion d'un void* en un pointeur d'un autre type est implicite (au contraire du C++)
- tab n'est pas un pointeur mais un int et cette ligne n'a pas de sens. On doit avoir int * tab=malloc(n*sizeof(int));.
for (p=n-1;p-tab>0;p--)...
- p est un pointeur et n un entier. A quoi rime p=n-1 ?
etc.
Partager