C ++ pointeurs. Comment affecter une valeur à une structure de pointeur?
Je avoir la structure suivante:
typedef struct{
int vin;
char* make;
char* model;
int year;
double fee;
}car;
Puis-je créer un pointeur de type voiture
car *tempCar;
Comment faire pour affecter des valeurs à la tempCar? Je vais avoir de la difficulté à
tempCar.vin = 1234;
tempCar.make = "GM";
tempCar.year = 1999;
tempCar.fee = 20.5;
Compilateur ne cesse de dire tempCar est de type auto*. Je ne suis pas sûr de ce que je fais mal
source d'informationauteur user69514
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'utiliser l'option -> opérateur sur les pointeurs, comme ceci:
Aussi, n'oubliez pas d'allouer de la mémoire pour tempCar si vous êtes en utilisant un pointeur de ce genre. C'est ce que les "nouveaux" et "supprimer" ne.
Vous avez à déréférencer le pointeur de la première (pour obtenir la structure).
:
Ou:
tempCar->vin = 1234
L'explication est assez simple :
car*
est un pointeur surcar
. C'est dire que vous devez utiliser l'opérateur->
pour accéder aux données. Par la voie,car*
doit être attribuée que si vous voulez l'utiliser.L'autre solution est d'utiliser une déclaration comme
car tempCar;
. Lecar
struct est maintenant sur la pile, vous pouvez l'utiliser aussi longtemps que vous êtes dans ce champ d'application. Avec ce genre de déclaration, vous pouvez utilisertempCar.vin
pour accéder aux données.Votre tempCar est un pointeur, alors vous devez allouer de la mémoire pour et de lui attribuer comme ceci:
Sinon déclarer tempCar de cette façon:
car tempCar;
Changer de voiture *temp en dessous de la ligne:
Les gens, être prudent lors de l'utilisation de nouvelles, ce n'est pas Java, C++, ne pas utiliser de parenthèses lorsque vous n'avez pas de paramètres: tempCar = new voiture;