注册 登录
编程论坛 C++教室

一个嵌套的结构体数组动态开内存的问题

redfire 发布于 2013-07-03 09:21, 1278 次点击
程序代码:
#include<iostream>
#include<fstream>
using namespace std;
int route_sum,station_sum;
struct main_place
{
    char num;
    char mainPlace[5][30];
};
struct station_name
{
    char name[30];
    main_place place;
};
struct bus_route
{
    int number;
    station_name * station;
}*route;
int main()
{
    fstream f_save("route.dat",ios::app);
    {
        char s[40];
        cout<<"请输入线路数:";
        cin>>route_sum;
        f_save<<route_sum<<endl;
        route=new bus_route[route_sum];
        for (int i=0;i<route_sum;i++)
        {
            printf("请输入第 %d 个线路信息\n",i);
            cout<<"线路号:";
            cin>>route[i].number;
            f_save<<route[i].number<<" ";
            cout<<"此线路的站点数为:";
            cin>>station_sum;
            station=new station_name [station_sum];          //主要是这里,结构体bus_route的成员station_name类型的*station怎么动态开内存
            for (int t=0;t<station_sum;t++)
            {
                cout<<"站点名字:";
                cin>>route[i].station[t].name;
                f_save<<route[i].station[t].name<<" ";
                cout<<"主要场所数目(不超过5个):";
                cin>>route[i].station[t].place.num;
            }
        }
    }
    return 0;
}
//谢谢过路的大神!
4 回复
#2
peach54602013-07-03 09:49
你这语法能编过?
#3
redfire2013-07-08 10:08
能过……不过啥也不能实现
#4
Pirelo2013-07-08 12:48
station=new station_name [station_sum];
我也很好奇这也能编过?
LZ看这样是不是更合理些:
bus_route[i].station=new station_name [station_sum]
#5
peach54602013-07-08 15:16
数组定义不接受变量啊,你们都什么编译器可以编过?
1