Bonjour à tous.
Après mon entrée lamentable sur ce forum, (http://forum.hardware.fr/hfr/Progr [...] m#t1866287) j'ai découvert un truc dont j'avais pas idée : un tableau n'est pas un pointeur !
Alors on pourra dire toute ce qu'on veut sur mon école d'ingénieur, mais là, je tombe des nues, j'y comprends rien malgré ma bonne volonté à lire (et essayer de comprendre) les multiples messages référents à ce qui visiblement est quasiment un troll sur ce forum. (que j'ai essayé de référencer ici également).
Quand aux docs sur le net, j'ai rien trouvé qui m'explique cela correctement...
En fait, ce qui me chagrinne dans cette histoire, c'est que je n'ai entendu nulle part dans ces topics parler d'allocation. Or, cela me semble la base de tout !!
Pour plagier Ace17 http://forum.hardware.fr/hfr/Progr [...] 8905_1.htm :
Code :
- char name1[20]; //allocation statique
- char* name2; // définition d'un pointeur
- name2 = (char *) malloc(20*sizeof(char)); // allocation dynamique
- name2[2] = 'c'; // Légal puisque le tableau est alloué maintenant
|
Dites moi si je me trompe.
Je me serait très bien passé de cette polémique, mais je souhaite faire un qsort qui appelle une fonction de comparaison (sur une chaine de caractère allouée dynamiquement qui est dans une structure). Mon compilateur me dit que j'ai un déréférencement, et sortie du code tout fait ( return( strcmp(*(char **)sp1, *(char **)sp2) ); ) je suis perdue dans les typages.
Merci à tous ceux qui accepterons d'éclairer ma lanterne.