外部函数调用struct里面的数组编译不报错,但是运行时会崩溃,如果把数组在结构体外面定义则会运行正常,这是为什么?该怎么解决这个问题?要使用结构体的,谢谢!

lench 发布于 2015/04/23 12:22
阅读 146
收藏 0

解读下一代网络:算力网络正从理想照进现实!>>>

#include<iostream>
#include<fstream>
struct
{
    int b[128]={0};
}table;
using namespace std;
int main()
{
    string fileName;
    cin>>fileName;
    char*fileN=new char,ch;
    for(int i=0;i<fileName.size();i++)
    {
        fileN[i]=fileName[i];
    }
    fileN[fileName.size()]='\0';//把string类型的字符串转换成c风格的字符串,ifstream不接受string类型的字符串
    ifstream file(fileN,istream::in);
    if(!file.is_open())
    {
        cout<<"error";
        return 1;
    }
    while(file.get(ch))//文件读取,返回ifstream对象,并转换为bool型
    {
        table.b[ch]++;
    }
    if(file.eof())
        cout<<"Eof reached"<<endl;
    else
        cout<<"error reading"<<endl;
    file.close();
    for(int i=0;i<128;i++)
        cout<<(char)i<<"\t"<<table.b[i]<<endl;
    return 0;
}

加载中
返回顶部
顶部