请问:用new动态分配结构数组的赋值有关问题

请教:用new动态分配结构数组的赋值问题
//C++   Primer   Plus(第五版)练习题   关于用new   动态分配结构数组的问题
//p110   6.结构CandyBar包含3个成员,如编程练习5所示.
//请编写一个程序,创建一个程序,创建一个包含3个元素的
//CandyBar数组,并将它们初始化为所选择的值,然后显示每个结构的内容.
//完成编程练习6,但使用new来动态分配数组,而不是声明一个包含3个元素的CandyBar数组.

#include   <iostream>
const   MAX=20;

using   namespace   std;
struct   CandyBar
{

char   brand[MAX];
double   weight;
int   calorie;

};

int   main()
{
CandyBar   *snack   =   new   CandyBar   [3]=     //是不是这里出现了问题,不能在分配时赋值?
                                                                                              //还是我用new用错了
{                                                                                               //22行
{   "liudongming "   ,   12.2   ,   55   },               //23行
{   "liudehua "   ,   54.6   ,   42   },                     //24行
{   "dell "   ,   45.2   ,   31   }                               //25行
};
for(int   i=0;i <3;i++)
{
cout < <snack[i].brand < <endl
        < <snack[i].weight < <endl
        < <snack[i].calorie < <endl < <endl;
}
delete   []   snack;     //这将释放snack指向的内存,但不会删除指针本身.
return   0;
}

出错信息:--------------------Configuration:   4_110_9   -   Win32   Debug--------------------
Compiling...
new_array.cpp
......(22)   :   error   C2059:   syntax   error   :   '{ '
......(22)   :   error   C2143:   syntax   error   :   missing   '; '   before   '{ '
......(23)   :   error   C2143:   syntax   error   :   missing   '; '   before   '} '
......(23)   :   error   C2143:   syntax   error   :   missing   '; '   before   ', '
......(24)   :   error   C2143:   syntax   error   :   missing   '; '   before   '{ '
......(24)   :   error   C2143:   syntax   error   :   missing   '; '   before   '} '
......(24)   :   error   C2143:   syntax   error   :   missing   '; '   before   ', '
......(25)   :   error   C2143:   syntax   error   :   missing   '; '   before   '{ '
......(25)   :   error   C2143:   syntax   error   :   missing   '; '   before   '} '
执行   cl.exe   时出错.

new_array.obj   -   1   error(s),   0   warning(s)