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] 那应该可以解决你的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |