Variable non definie
Fermé
Fidio
-
7 oct. 2019 à 10:18
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 7 oct. 2019 à 12:05
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 7 oct. 2019 à 12:05
A voir également:
- Variable non definie
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Variable objet ou variable de bloc With non définie: Erreur d'éxécution 91 ✓ - Forum VB / VBA
- VBA variable objet ou variabe de bloc With non définie - Forum VB / VBA
2 réponses
edit j'ai vue que dans le deuxième for il y avais un soucie que j'ai corriger (les variables sont toujours indéfini)
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié le 7 oct. 2019 à 12:39
Modifié le 7 oct. 2019 à 12:39
Salut Fidio,
Quel est le message de ton compilateur ? Il est étonnant qu'il se plaigne de variables "non définies".
Par contre, si tab est un pointeur de pointeur sur char, tu le déclares
Au sujet de hauteur et largeur, si tu indiques dans ton prototype que tu passes des pointeurs sur
Cependant, dans ton cas ta fonction ne dois pas modifier la valeur des entiers hauteur et largeur. Il n'y a donc aucune raison que tu passes des pointeurs sur ces entiers et tu devrais seulement passer des
Enfin, note que pour mettre à zéro une zone mémoire, il y a
Quel est le message de ton compilateur ? Il est étonnant qu'il se plaigne de variables "non définies".
Par contre, si tab est un pointeur de pointeur sur char, tu le déclares
int ** tabet pas
int tab**, qui n'a syntaxiquement pas de sens dans un prototype et certainement, ton compilateur a dû te l'indiquer.
Au sujet de hauteur et largeur, si tu indiques dans ton prototype que tu passes des pointeurs sur
int, tu dois les déréférencer pour les utiliser comme
intdans ta fonction. Donc : dans ta boucle for, tu dois comparer ton compteur
ià
*hauteur. Sinon, avec ton code, ton compilateur a dû t'avertir que tu comparais un entier avec un pointeur, ce qui n'a la plupart du temps pas de sens. Là aussi, pas de message concernant des "variables non définies".
Cependant, dans ton cas ta fonction ne dois pas modifier la valeur des entiers hauteur et largeur. Il n'y a donc aucune raison que tu passes des pointeurs sur ces entiers et tu devrais seulement passer des
int, et non des
int *et ne pas t'embêter avec la nécessité de les déréférencer.
Enfin, note que pour mettre à zéro une zone mémoire, il y a
memsetqui te permet de mettre à zéro des zones de mémoire contiguës, et, en amont, si ta mémoire est allouée avec
malloc, et que tu as besoin de la mettre à zéro une seule fois, tu peux le faire en utilisant
callocau lieu de
malloc.