所以我现在还没有用C ++进行编码很长一段时间,但我很确定这个问题与SOCI有关,而不是C ++中内存使用的一般知识。这是问题所在:我正在使用SOCI来查询表并获取字段,而sql语句行总是会导致分段错误。这很麻烦......以下是代码:
string engine::getReview(int rev_id)
{
try {
session sql;
string post;
sql.open("mysql", "db=ranking_dev user=****** password=*******");
sql << "SELECT post FROM reviews WHERE id = 3", into(post); //Faulty line
return post;
}
catch (exception const &e) {
cerr << "Error: " << e.what() << '\n';
return "";
}
}
我很肯定这条线是错误的根源。我试图初始化“post”变量,但无济于事。此外,如果我从表中检索一个整数值(从而将数据存储在整数中),则没有SEG FAULT。所以我猜这个问题与我使用这个字符串的方式有关,但我可以看到我的函数中出现过多错误。关于这个的任何想法?