| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3490 人关注过本帖
标题:new分配动态结构数组空间怎么不成
只看楼主 加入收藏
abigboy
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-4-24
结帖率:66.67%
收藏
已结贴  问题点数:4 回复次数:7 
new分配动态结构数组空间怎么不成
#include<iostream>
    using namespace std;
struct pisa
{
    char name[10];
    int zj;
    int zl;
};
int main()
{
//    using namespace std;
    pisa p;
     p=new pisa[2];
    for(int i=0;i<2;i++)
    {
        cout<<"请输入比萨的no. "<<i<<"公司名称"<<endl;
        cin.get(p[i]->name,10);
        cout<<"请输入比萨"<<i<<"的直径"<<endl;
        cin>>p[i]->zj;
        cout<<"请输入比萨"<<i<<"的重量"<<endl;
        cin>>p[i]->zl;        
    }
    for(int i=0;i<2;i++)
    {
        cout<<"公司"<<i<<"名称:"<<p[i]->name<<","<<i<<"直径:"<<p[i]->zj<<","<<i<<"重量:"<<p[i]->zl<<endl;
    }
    delete []p;
    return 0;
}
搜索更多相关主题的帖子: 动态 include 比萨 
2013-06-03 21:43
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
pisa* p = new pisa[2]
2013-06-03 22:15
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:2 
pisa p;
     p=new pisa[2]
你初始化的是一个结构体数组,就不能用这种方式初始化,必须使用指针指向数组的首地址。就像二楼一样

C++菜鸟
2013-06-04 11:00
abigboy
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-4-24
收藏
得分:0 
回复 3楼 lzj12530
我按照二楼那样声明之后 还是不能分配成功这是为什么
2013-06-04 16:50
abigboy
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-4-24
收藏
得分:0 
回复 2楼 rjsp
我按照你的方法进行分配为啥还是不行   顺便问问为啥我那样分配是错误的
2013-06-04 16:51
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
程序代码:
#include <iostream>
#include <string>
using namespace std;

struct pisa
{
    string name;
    int zj;
    int zl;
};

int main()
{
    pisa* p = new pisa[2]; // 其实C/C++都不建议你滥用动态分配
    for( int i=0; i<2; ++i )
    {
        cout<<"请输入比萨的no. "<<i<<"公司名称"<<endl;
        cin >> p[i].name;
        cout<<"请输入比萨"<<i<<"的直径"<<endl;
        cin >> p[i].zj;
        cout<<"请输入比萨"<<i<<"的重量"<<endl;
        cin >> p[i].zl;
    }
    for( int i=0; i<2; ++i )
    {
        cout<<"公司"<<i<<"名称:"<<p[i].name<<","<<i<<"直径:"<<p[i].zj<<","<<i<<"重量:"<<p[i].zl<<endl;
    }
    delete[] p;

    return 0;
}
2013-06-05 08:41
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:2 
如果 公司名 包含空格的话,将 cin >> p[i].name; 改为 getline( cin, p[i].name );
2013-06-05 08:43
abigboy
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2013-4-24
收藏
得分:0 
回复 7楼 rjsp
恩 明白了谢谢大神
2013-06-05 17:22
快速回复:new分配动态结构数组空间怎么不成
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030655 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved