首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

动态数组结构的初始化有关问题

2012-02-08 
动态数组结构的初始化问题动态数组结构怎样初始化啊?其他方法我试过,都可以。就是初试化动态数组结构出错误

动态数组结构的初始化问题
动态数组结构怎样初始化啊?
其他方法我试过,都可以。就是初试化动态数组结构出错误。
那位高手帮忙看一下程序错误在哪里?
#include   <iostream>

const   int   SIZE=20;
struct   snack
{
char   name[SIZE];
float   weight;
int   calo;
};

int   main()
{
using   namespace   std;
snack   *CandyBar=new   snack[3];

CandyBar[0]={ "Mocha   Munch ",2.3,350   };//这里出错
CandyBar[1]={ "Tony   Mo ",2.4,360   };
CandyBar[2]={   "Sally   Huang ",2.5,370   };


int   i;
for(i=0;i <3;i++)
{
cout < < "Name: " < <CandyBar[i].name < <endl;
cout < < "Weight: " < <CandyBar[i].weight < < "   kilograme.\n ";
cout < < "Calo: " < <CandyBar[i].calo < < "   calo.\n ";
cout < <endl;
}

delete   []   CandyBar;
return   0;
}

[解决办法]
const int SIZE=20;
struct snack
{
char name[SIZE];
float weight;
int calo;

snack() {}
snack(const char na[], float w, int c) {

strncpy(name, na, sizeof(name));
weight = w;
calo = c;
}
};

int main()
{
using namespace std;
snack *CandyBar=new snack[3];

CandyBar[0]= snack( "Mocha Munch ",2.3,350);
CandyBar[1]= snack( "Tony Mo ",2.4,360);
CandyBar[2]= snack( "Sally Huang ",2.5,370);


int i;
for(i=0;i <3;i++)
{
cout < < "Name: " < <CandyBar[i].name < <endl;
cout < < "Weight: " < <CandyBar[i].weight < < " kilograme.\n ";
cout < < "Calo: " < <CandyBar[i].calo < < " calo.\n ";
cout < <endl;
}

delete [] CandyBar;
return 0;
}

热点排行