C Valeur, adresse, parametre
Résolu/Fermé
Chewi-Chew
-
16 oct. 2009 à 14:39
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 16 oct. 2009 à 15:19
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 16 oct. 2009 à 15:19
A voir également:
- C Valeur, adresse, parametre
- Rechercher ou entrer l'adresse - Guide
- Darkino nouvelle adresse - Guide
- Darkino : le grand site pirate change d'adresse et d'interface - Accueil - Services en ligne
- Adresse mac - Guide
- Créer une adresse hotmail - Guide
5 réponses
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
16 oct. 2009 à 14:50
16 oct. 2009 à 14:50
ce n'est pas la structure que tu dois passer à ta fonction, mais un pointeur sur la structure. Un pointeur, c'est uen adresse.
pour obtenir le pointeur d'une variable (ou structure), il faut mettre & devant le paramètre...
au lieu de passer un type DATA, tu fera donc passer du DATA*.
au lieu d'y accèder en faisant DATA . variable, tu feras DATA ->variable
cherches les cours sur les pointeurs sur le net
pour obtenir le pointeur d'une variable (ou structure), il faut mettre & devant le paramètre...
au lieu de passer un type DATA, tu fera donc passer du DATA*.
au lieu d'y accèder en faisant DATA . variable, tu feras DATA ->variable
cherches les cours sur les pointeurs sur le net
Merci pour cette reponse rapide
Donc ca donnerai :
int main (void)
{
DATA Data;
Create (&Data)
}
//Fonction create
Create (DATA *Data)
{
fonction1(&Data);
fonction2(&Data);
...
}
//Fonction1
fonction1 (DATA * Data)
{
data->blabla->blabla1 = 00;
}
Donc ca donnerai :
int main (void)
{
DATA Data;
Create (&Data)
}
//Fonction create
Create (DATA *Data)
{
fonction1(&Data);
fonction2(&Data);
...
}
//Fonction1
fonction1 (DATA * Data)
{
data->blabla->blabla1 = 00;
}
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
16 oct. 2009 à 14:56
16 oct. 2009 à 14:56
//Fonction create
Create (DATA *Data)
{
fonction1(&Data);
fonction2(&Data);
...
}
=> non, ca donne ce qui suit, car tu aura déja un pointeur, donc pas la peine de remettre le &
//Fonction create
Create (DATA *Data)
{
fonction1(Data);
fonction2(Data);
...
}
data->blabla->blabla1 = 00;
=> je sais pas, mais ca m'étonnerai. à mon avis, ce serait plutot
data->blabla.blabla1 = 00;
Create (DATA *Data)
{
fonction1(&Data);
fonction2(&Data);
...
}
=> non, ca donne ce qui suit, car tu aura déja un pointeur, donc pas la peine de remettre le &
//Fonction create
Create (DATA *Data)
{
fonction1(Data);
fonction2(Data);
...
}
data->blabla->blabla1 = 00;
=> je sais pas, mais ca m'étonnerai. à mon avis, ce serait plutot
data->blabla.blabla1 = 00;
Alors j'ai suivi ce que tu m'as dit et voila ce que ça me renvoie :
error C2664: 'Fonction1' : cannot convert parameter 1 from 'DATA*' to 'DATA'
No constructor could take the source type, or constructor overload resolution was ambiguous
error C2664: 'Fonction1' : cannot convert parameter 1 from 'DATA*' to 'DATA'
No constructor could take the source type, or constructor overload resolution was ambiguous
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
16 oct. 2009 à 15:19
16 oct. 2009 à 15:19
y a pas de quoi.
Les pointeurs font la puissance du C. Tu devrais bien te renseigner sur leur utilisation et leurs avantages. Pour de grosses structures, il vaut souvent mieux instancier les varaibles grâce aux pointeur, sur le tas, que sur la pile (la taille de la pile étant souvent assez petite)
Les pointeurs font la puissance du C. Tu devrais bien te renseigner sur leur utilisation et leurs avantages. Pour de grosses structures, il vaut souvent mieux instancier les varaibles grâce aux pointeur, sur le tas, que sur la pile (la taille de la pile étant souvent assez petite)