2

MYSQL C API を使用して結果をクエリする場合。結果はMYSQL_ROW型として返されます。MYSQL C API ドキュメントによると、これは簡単に行うことができますprintf("%s", row[0])row[0]しかし、の内容を文字列または char*に転送したい場合はどうすればよいでしょうか?

4

3 に答える 3

1

%s 形式は char* のみを受け入れることになっているため、説明から MYSQL_ROW は実際には char** のように見え、row[0] を取得するととにかく char* が生成されます。

sprintf() (またはより安全だが非標準の asprintf()) を使用することがどのように役立つかはわかりませんが、気分が良くなる場合は検討してください。

于 2008-11-08T22:43:51.267 に答える
0

sprintf()を使用することもできますが、十分なメモリを割り当てることができるように、row[0] に含まれる文字列の長さを知る必要があります。

警告: BCS は、row[0] に余分な nul バイトが含まれている場合、データが切り捨てられることを正しく指摘しています。行 [0] に格納されているデータの量がわかっている場合は、memcpy()を使用する方がおそらく優れたソリューションです。

于 2008-11-08T22:43:40.157 に答える