libpq を使用して、postgreSQL クライアント アプリケーションに取り組んでいます。gcc はエラーなしでコンパイルします。ただし、プログラムを実行すると、この関数は次のようになります。
void print_column(PGconn *connection) {
PGresult *id_list;
int row;
// process_query() calls PQexec(), checks for errors, then returns the result
id_list = process_query(connection, "SELECT id FROM customers WHERE state='CA'");
for(row = 0; row < PQntuples(id_list); row++) {
printf("%s\n", PQgetvalue(id_list, row, 0));
// to pause the loop on each rep for debugging
getchar();
}
}
次のエラーが発生します。
row number 1701734765 is out of range 0..8
Segmentation fault
奇妙なのは、for ループが最初の 5 回の繰り返しを問題なく実行していることです。次に、6 番目にセグメンテーション違反が発生します。
1000 行以上あるため、プログラム全体を投稿しませんでした。どんな提案でも大歓迎です。