读书人

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

发布时间: 2012-02-08 19:52:21 作者: rapoo

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

读书人网 >C++

热点推荐