use*_*514 17 c c++ struct pointers
我有以下结构:
typedef struct{
int vin;
char* make;
char* model;
int year;
double fee;
}car;
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个类型为car的指针
car *tempCar;
Run Code Online (Sandbox Code Playgroud)
如何为tempCar分配值?我遇到了麻烦
tempCar.vin = 1234;
tempCar.make = "GM";
tempCar.year = 1999;
tempCar.fee = 20.5;
Run Code Online (Sandbox Code Playgroud)
编译器一直说tempCar是car*类型.我不确定我做错了什么
Ari*_*yck 28
你需要在指针上使用 - >运算符,如下所示:
car * tempCar = new car();
tempCar->vin = 1234;
tempCar->make = "GM";
//...
delete tempCar;
Run Code Online (Sandbox Code Playgroud)
另外,如果您正在使用这样的指针,请不要忘记为tempCar分配内存.这就是'新'和'删除'的作用.
Set*_*eth 13
您必须首先取消引用指针(以获取结构).
或者:
(*tempCar).make = "GM";
Run Code Online (Sandbox Code Playgroud)
要么:
tempCar->make = "GM";
Run Code Online (Sandbox Code Playgroud)
tempCar->vin = 1234
解释很简单:car*是一个指针car.这意味着您必须使用运算符->来访问数据.顺便说一句,car*如果你想使用它必须分配.
另一种解决方案是使用诸如的声明car tempCar;.car只要您在此范围内,结构现在就可以使用它了.通过这种声明,您可以使用它tempCar.vin来访问数据.