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

c – 获取用户输入时的分段错误,第1张

概述我有这个: // Get database access parameters const char* db = "codes", *server = "localhost", *user = "root", *pass = "pass"; // Connect to the sample database. mysqlpp::Connection conn(false 我有这个:

// 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 << "Введите D\n";            cin >> d;            cout << "Введите количество записей при D=" << d << endl;            cin >> count;            for (int a=0; a<count; ++a)            {                char * name;                int r,n1,n2;                cout << "Введите R\n";                cin >> r;                cout <<"Введите n1 и n2\n";                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]

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

总结

以上是内存溢出为你收集整理的c – 获取用户输入时的分段错误全部内容,希望文章能够帮你解决c – 获取用户输入时的分段错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1219469.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存