A voir également:
- Pointeur de pointeur
- Pointeur souris disparu pc portable - Guide
- Pointeur souris - Guide
- Pointeur souris disparu pc portable asus - Guide
- Le pointeur de ma souris ne bouge plus ✓ - Forum souris / Touchpad
- Cercle bleu pointeur souris clignote en permanence windows 10 ✓ - Forum Windows 10
2 réponses
Oui vous avez tout a fait raison pour la liberation de la memoire allouée.
il faut une boucle pour liberer les Data[i];
J'ai trouver pour l'incrementation il faut mettre à la place de Data++ ---> Data[i]++
Mais je n'arrive pas toujours a comprendre le Data[i]++ !!!!!
Data[i] je comprends , cela veut dire prendre le contenu à l'indexe i, qui correspond a une adresse
mais le ++ ???
A mois que cela consiste a incrementer l'adressse du pointeur Data et d'en prendre le contenu ???
j'ai essayer une autre syntaxe et cela marche *(Data)++;
Pouvez vous me dire pourquoi que cela marche ???
Vous en remerciant
il faut une boucle pour liberer les Data[i];
J'ai trouver pour l'incrementation il faut mettre à la place de Data++ ---> Data[i]++
Mais je n'arrive pas toujours a comprendre le Data[i]++ !!!!!
Data[i] je comprends , cela veut dire prendre le contenu à l'indexe i, qui correspond a une adresse
mais le ++ ???
A mois que cela consiste a incrementer l'adressse du pointeur Data et d'en prendre le contenu ???
j'ai essayer une autre syntaxe et cela marche *(Data)++;
Pouvez vous me dire pourquoi que cela marche ???
Vous en remerciant
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
25 août 2008 à 20:37
25 août 2008 à 20:37
Bonjour,
Il y a quelques petites choses maladroites.
Il doit toujours y avoir une correspondance un malloc = 1 free. il faut donc aussi une boucle pour faire des free puis seulement le free(Data);
Le Data++ est gênant car le free ne reçoit plus la bonne adresse, celle donnée par le malloc.
La boucle est très difficile à comprendre et je pense qu'elle dépasse les limites du tableau.
Après le premier tour:
Après le deuxième:
Après le cinquième
Je pense qu'il serait mieux de ré-écrire la double boucle en utilisant la notation Data[i][j] = ...
(Ou Data[j][0] qui reprend ton cas)
Quel est le résultat voulu ?
M.
EDIT. Les ?? représentent des données jamais écrites donc à supposer inconnues.
Il y a quelques petites choses maladroites.
Il doit toujours y avoir une correspondance un malloc = 1 free. il faut donc aussi une boucle pour faire des free puis seulement le free(Data);
Le Data++ est gênant car le free ne reçoit plus la bonne adresse, celle donnée par le malloc.
La boucle est très difficile à comprendre et je pense qu'elle dépasse les limites du tableau.
Après le premier tour:
Data = { 50, ??, ??, 51, ??, ??, 52, ??, ??, ??, ??, ??, ??, ??, ??, }
Après le deuxième:
Data = { 50, ??, ?? 60, ??, ??, 61, ??, ??, 62, ??, ??, ??, ??, ?? }
Après le cinquième
Data = { 50, ??, ??, 60, ??, ??, 70, ??, ??, 80, ??, ??, 90, ??, ?? } 91, ??, ??, // dépassement 92, ??, ??
Je pense qu'il serait mieux de ré-écrire la double boucle en utilisant la notation Data[i][j] = ...
(Ou Data[j][0] qui reprend ton cas)
Quel est le résultat voulu ?
M.
EDIT. Les ?? représentent des données jamais écrites donc à supposer inconnues.