Redimensionner un tableau de pointeurs - C - Programmation
Marsh Posté le 15-01-2004 à 15:10:15
je comprends rien à ton truc !
pourquoi tu déréférences nbm si c'est une simple variable ? (ie pas un pointeur)
Marsh Posté le 15-01-2004 à 15:13:35
si en fait c dans une fct... c pour ça... en gros si tu préfères
ça donne ça si c t dans le main...
Code :
|
Marsh Posté le 15-01-2004 à 15:21:23
ouais ... euh ... je crois voir que tu vas perdre tous les pointeurs de ta liste existante, en plus d'avoir une fuite de mémoire par la non-libération de la mémoire de l'ancienne suite
Code :
|
puis j'ai pas trop compris ...
documente toi sur realloc si jme souviens bien pour éviter la fuite de mémoire
Marsh Posté le 15-01-2004 à 15:24:27
donc fo que je recopie le tableau de pointeurs avant je pense...
Marsh Posté le 15-01-2004 à 15:28:22
pas la peine, Blackgoddess a raison, l'utilisation de realloc() te permet de redimensionner un tableau sans perdre son contenu
http://www.opennc.org/onlinepubs/7 [...] alloc.html
Marsh Posté le 15-01-2004 à 15:34:18
question idiote... qqun connait le code source de cette fct? car com on la pa vu en cours je vais éviter d'y faire appel directemetn
Marsh Posté le 15-01-2004 à 16:05:14
une bonne implémentation est trop liée à l'implémentation de l'allocateur mémoire, c'est un peu au dessus de ton niveau.
une implémentation triviale et indépendante est un malloc + memcpy + free
Marsh Posté le 15-01-2004 à 16:37:55
ah oui... euh... bon je vais me débrouiller pour faire une copie dans un tableau temporaire avant de faire un free, de réallouer et de recopier. merci
Marsh Posté le 15-01-2004 à 16:49:32
parceque je pense que mes profs sont des gens rigides qui n'aiment pas que l'on utilise des trucs quand on l'a pas vu en cours... oui je trouve ça con... mais je peux pas y changer grand chose... g déjà essayé et je me suis fait traiter d'enfoiré lol
Marsh Posté le 15-01-2004 à 16:57:23
c'est nimporte quoi. voir malloc et free sans realloc, c'est débile
Marsh Posté le 15-01-2004 à 16:58:34
LOL oui... et c Meunier qui mène les insultes je vois que c connu...
oui taz suis d'accord !
Marsh Posté le 15-01-2004 à 17:04:06
je crois que le pire pour moi c'est que vous vous laissiez faire
Marsh Posté le 15-01-2004 à 17:05:51
je suis sympa c'est la fonction vu en td qui sert a grossir le tableau dynamique
Code :
|
Marsh Posté le 15-01-2004 à 17:07:25
lol bah bien sûr, menons la rebellion contre le côté obscur
non je pense qu'il faut se mettre dans le moule accepter le fait que l'on veuille d'abord savoir le faire nous même puis nous filer la fct qui le fait toute seule. Je pense que ça a du bon car perso g fait l'experience en MIAS du "utilisez ce que vous voulez" et celà dès le début et ça a été un bordel monstre!
Marsh Posté le 15-01-2004 à 17:08:50
mais biensur ... quand on voit le code de ev, je préfère qu'il utilise n'importe qoi plutot que ça
Marsh Posté le 15-01-2004 à 17:09:55
taz a écrit : mais biensur ... quand on voit le code de ev, je préfère qu'il utilise n'importe qoi plutot que ça |
mdr je le prends pas pour moi , c'est un prof qui nous a filé sa
Marsh Posté le 15-01-2004 à 17:13:27
Moi, j'utiliserai realloc et je dirai "ben, le but, c'est aussi de nous familiariser a linux nan ? Alors, j'ai RTFM avec man realloc..."
Marsh Posté le 15-01-2004 à 17:16:46
oula ! attention! Linux! ils vont te dire "on va fait travailler sur des postes NT200 avec VC++ dessus com compilateur C vous vous égarez! 0 allez hop!" tu les connais pas ces gens là
Marsh Posté le 15-01-2004 à 17:37:10
ah parce que sous NT/2000 avec VC++ realloc il connait pas peut-etre ?
(il sert a quoi nb ? un coup du utilise *taille et le coup d'apres nb ? sinon 'Gmots **tmp;' ca devrait pas etre 'machinchose ** tmp;' plutot ?)
Marsh Posté le 15-01-2004 à 17:42:23
BlackGoddess a écrit : ah parce que sous NT/2000 avec VC++ realloc il connait pas peut-etre ? |
sisi c'est machin chose j'ai oublié de le changer
puis nb est necessaire, regarde: imaginons la taille a l'origine est de 6, tu lui ajoute 3 ce qui fait taille=9, mais quand tu recopies le tableau dans le tableau temporaire, il n'y a toujours que 6 elements a recopier
Marsh Posté le 15-01-2004 à 18:13:08
@BlackGoddess : si bien sur que realloc existe sous W2K mais l'explication de pkoi je peux pas l'utiliser est plus haut...
Marsh Posté le 15-01-2004 à 19:20:09
e-v-tooms oui pardon j'avais mal lu
Marsh Posté le 16-01-2004 à 04:36:47
en meme temps s'il a un pb pour coder un realloc (meme "naif" )
c'est a craindre qu'il n'aura pas appris grand chose dans son cours de C.
Donc +1 pour qu'il recode un truc qui marche sans s'appuyer sur realloc.
LeGreg
Marsh Posté le 18-01-2004 à 15:51:35
D'un autre coté, c'est une manie bien française (peut-être pas seulement française d'ailleurs) que de recoder - mal - des fonctions qui existent déjà dans les librairies standard. Je ne crois pas avoir jamais vu un projet où des fonctions qui se trouvent en standard dans la lib ANSi n'aient été recodées. Avec des bugs bien sûr.
Je me souviens d'un projet où 3 ingénieurs ont été assignés pendant 4 semaines à chercher un bug lié à la mémoire dans un système embarqué. Ils soupçonnaient un soft qui avait été acheté à une boîte asiatique sans accès au code source, et qui avait déjà démontré une fiabilité pas vraiment exemplaire par le passé. Donc ils pourrissaient assez copieusement leurs collègues asiatiques au téléphone, avant de finir par se rendre compte que le bug était tapi depuis des lustres dans un strcpy roulé sous les aisselles par la boîte française. La tronche qu'ils tiraient quand ils ont dû expliquer aux asiatiques que cette fois-ci, le bug était bien chez eux...
Dans un autre projet en C++, un type avait cru bon de définir TRUE à 0 et FALSE à 1. Du vrai sabotage.
Marsh Posté le 19-01-2004 à 00:04:03
el muchacho a écrit : D'un autre coté, c'est une manie bien française (peut-être pas seulement française d'ailleurs) que de recoder - mal - des fonctions qui existent déjà dans les librairies standard. Je ne crois pas avoir jamais vu un projet où des fonctions qui se trouvent en standard dans la lib ANSi n'aient été recodées. Avec des bugs bien sûr. |
je te parle pas d'un projet industriel
mais d'un truc d'apprentissage.
dans ma scolarité j'ai du reprogrammer un mini shell.
Evidemment il était plus pourri que ceux qui existaient
mais le but cétait pas de renommer l'executable du shell et de le filer au prof.
A+
LeGreg
Marsh Posté le 15-01-2004 à 15:07:30
Alors en fait j'utilise un tableau de pointeurs que je redimensionne selon mes besoins ( tjs en l'agrandissant ), au début il a une taille de 6 puis je l'augmente de 3 en 3 mais mon problème est que les 6 premières cases marchent mais ensuite ça plante... voilà le code de redimension, est ce que j'oublie qqchose?
nbm c le nbr de mots rentrés dans le tableau, tailleL c la taille actuelle. Je me demande en fait si il ne manque pas un free là dedans