Pointeur vers une variable (record) de type : array of array of ... - Delphi/Pascal - Programmation
Marsh Posté le 04-04-2005 à 12:10:55
Quand tu remplis les champs de ton tableau, tu le redimensionnes bien ? (avec SetLength)
Tu peux activer l'option Range Checking dans Project -> Options -> Compiler le temps de trouver le problème.
Marsh Posté le 04-04-2005 à 12:12:26
Au passage, à moins d'être obligé d'utiliser un record, j'utiliserais des objets (déclarés comme class au lieu de record donc) et une TObjectList pour ne pas avoir à gérer les désallocations.
Marsh Posté le 04-04-2005 à 12:38:00
Ben, à un moment du programme je suis obligé de créer des varaibles dynamiques:
Code :
|
Et la matrice : Matrice_Jeu est une variable globale et a été dimensionée à la création de la fiche principale (oncreate).
Concernant ta proposition d'utiliser des class et TObjectList, ben là je suis désolé tu m'en demandes trop j'ai jamais travaillé avec ces choses là .
Sur un autre forum on m'a dit le suivant:
Citation : une variable tableau ouvert est un pointeur, donc tu dois le déréférencer : |
Citation : 2 choses : |
????
Bref je patauge dans la mouise .
Marsh Posté le 04-04-2005 à 12:46:45
Ces histoires de pointeurs et de tableaux dynamiques j'ose pas trop y toucher En général je me contente des objets et des listes
Marsh Posté le 04-04-2005 à 08:50:53
Bonjour à tous.
Voilà j'ai certaines difficultés avec l'utilisation d'un pointeur (Delphi).
Comme vous voyez PEn_tete est un pointeur qui pointe vers des varaibles dynamique de type TEn_tete composées de record et entre autre justement de TTableau qui est un tableau dynamique.
Bref, pour mon programme je crée un nombre important de varaible TEn_tete grâce au pointeur: new(PEn_tete), le pointeur correspondant est sauvegardé dans une TList: List.Add(PEn_tete).
Le problème est que justement les données (List[X]^.Matrice[i,j].Y) que je lis grâce à l'appel du pointeur dans la list sont complètement érronés, tous les pointeurs dans la liste pointent vers une matrice qui on toutes les données de la dernière matrice enregistrée.
Or ce phénomène ne se passe pas quand j'utilise un tableau fix (Ca serait logique non? Car le compilateur ne sait pas combien de mémoire allouer dans le cas d'un tableau dynamique, c'est ça???):
Est-ce que la création de variable dynamique (de type array of array of) grâce à des pointeurs est impossible????
J'ai malheursement rien trouvé dans des livres ni sur le site.
Merci beaucoup de votre aide.