(新手请问)怎么用new来动态分配结构数组有关问题

(新手请教)如何用new来动态分配结构数组问题
stuct snack
{
    char candy_name[20];
    double candy_weight;
    int calorie;
}candybar[3]=
{
    {"chocolate",2.5,350},
    {"bar",2.0,300},
    {"grist",1.5,250}
}
这样一个结构数组,现在要求是,在不声明candybar数组的前提下,用new来动态分配数组,并初使化。
请高手指点,小弟在此问题上困惑不已。
不能用其它的方法哦,只能用new来动态分配数组。
    
    

------解决方案--------------------
snack *candybar = new snack[3];

strcpy(candybar[0]->candy_name, "chocolate");
candybar[0]->candy_weight = 2.5f;
candybar[0]->calorie = 350;

//others
------解决方案--------------------
    snack* candybar = new snack [3]
    {
        {"chocolate",2.5,350},
        {"bar",2.0,300},
        {"grist",1.5,250}
    };

这个语法是标准的,但可能要对标准支持比较好的编译器才能编译通过