加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 获取用户输入时的分段错误

发布时间:2020-12-16 10:20:45 所属栏目:百科 来源:网络整理
导读:我有这个: // Get database access parameters const char* db = "codes",*server = "localhost",*user = "root",*pass = "pass"; // Connect to the sample database. mysqlpp::Connection conn(false); if (conn.connect(db,server,user,pass)) { for (in
我有这个:

// Get database access parameters 
    const char* db = "codes",*server = "localhost",*user = "root",*pass = "pass";

    // Connect to the sample database.
    mysqlpp::Connection conn(false);
    if (conn.connect(db,server,user,pass)) {

        for (int i=0; i<10; ++i)
        {
            int d,count;
            cout << "Введите Dn";
            cin >> d;
            cout << "Введите количество записей при D=" << d << endl;
            cin >> count;
            for (int a=0; a<count; ++a)
            {
                char * name;
                int r,n1,n2;
                cout << "Введите Rn";
                cin >> r;
                cout <<"Введите n1 и n2n";
                cin >> n1 >> n2;
                cout <<"Введите названиеn";
                cin >> name;
                mysqlpp::Query query = conn.query();
                for (int j=n2-n1+1; j<n2; ++j)
                {
                    int k =pow(2,(j+r));
                    query << "insert into code (n,k,d,name) values (" << j << "," << k << "," <<d<<"," << mysqlpp::quote_only << name << ");";
                    query.execute(); 
                }
            }
        }
        conn.disconnect ();
        return 0;
    }
    else {
        cerr << "DB connection failed: " << conn.error() << endl;
        return 1;
    }
}

很抱歉发布了所有代码.
我可以编译程序没有错误,但在命令行中,它说“分段错误”.这个错误是什么?以及如何解决?

解决方法

你应该分配空间

char * name;

在写信之前.

如果您知道该名称不会更长,那么MAXNAME则只需定义名称即可

char name[MAXNAME+1]

那应该可以解决你的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读