[英]C++ hashtable using an array of head pointers. How do i assign my addNode() private method to my head pointer key position?
[英]C++ Pointers. How to assign value to a pointer struct?
我有以下结构:
typedef struct{
int vin;
char* make;
char* model;
int year;
double fee;
}car;
然后我创建了一个类型为car的指针
car *tempCar;
如何为tempCar分配值? 我遇到了麻烦
tempCar.vin = 1234;
tempCar.make = "GM";
tempCar.year = 1999;
tempCar.fee = 20.5;
编译器一直说tempCar是car *类型。 我不确定我做错了什么
你需要在指针上使用 - >运算符,如下所示:
car * tempCar = new car();
tempCar->vin = 1234;
tempCar->make = "GM";
//...
delete tempCar;
另外,如果您正在使用这样的指针,请不要忘记为tempCar分配内存。 这就是'新'和'删除'的作用。
您必须首先取消引用指针(以获取结构)。
或者:
(*tempCar).make = "GM";
要么:
tempCar->make = "GM";
tempCar->vin = 1234
解释很简单: car*
是一个指针car
。 这意味着您必须使用运算符->
来访问数据。 顺便说一句,如果你想使用它,必须分配car*
。
另一种解决方案是使用car tempCar;
等声明car tempCar;
。 只要您在此范围内, car
struct现在就可以使用它了。 使用这种声明,您可以使用tempCar.vin
来访问数据。
你的tempCar是一个指针,然后你必须为它分配内存并分配如下:
tempCar = new car();
tempCar->vin = 1234;
tempCar->make = "GM";
tempCar->year = 1999;
tempCar->fee = 20.5;
否则以这种方式声明tempCar: car tempCar;
将你的车*温度改为以下线:
car *tempCar = (car *)malloc(sizeof(car));
tempCar->vin = 1234;
tempCar->make = "GM";
tempCar->year = 1999;
tempCar->fee = 20.5;
人们在使用new时要小心,这不是Java,它是C ++,当你没有参数时不要使用括号:tempCar = new car;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.