我在这里遇到了一些困难的情况,我希望有人能帮助我。
我有以下,
struct CandyBar{
std::string name;
double weight;
int calories;
} ;
现在,创建一个包含许多 CandyBar 的结构数组非常简单,就像我所做的那样;
int main(){
CandyBar bars[] = {{"Mango tart", 2.3, 100}, {"Yo Yo", 3.2, 130}, {"Orange Ball", 1.7, 98}};
return 0;
}
但是,现在我想使用 new 创建相同的结构。当我想到它时这很简单,但这会崩溃并且不起作用。
CandyBar *bars = new CandyBar;
(*bars).name = "Mango tart";
bars->weight = 2.3;
bars->calories = 100;
bars += 1;
(*bars).name = "Yo Yo";
bars->weight = 3.2;
bars->calories = 130;
bars += 1;
(*bars).name = "Orange Ball";
bars->weight = 1.7;
bars->calories = 98;
但是,这不起作用。因为我认为第一个指针是指向第一个结构的内存位置,然后我创建结构,然后使用 bar += 1 增加地址,然后继续创建指针,但我错过了一些非常严重的东西。
我将衷心感谢您的帮助。