[英]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.