作者:zsx2502853407 | 来源:互联网 | 2023-02-09 07:42
1> Iharob Al As..:
我肯定这是不可能的1传递一个std::string
作为参数传递给一个ç可变参数的功能,使用.c_str()为您的所有字符串方法.
sqlite API是一个c API,所以函数期望一个c-string用于说明"%s"
符,这std::string
不是一回事,你可以通过方法使用它的内部数据,这些.c_str()
方法std::string
是有效c的对象的表示-string.
1严格说来,因为你做了,但是
它是UNDEFINED BEHAVIOR,并且垃圾值就在那里,因为函数试图取消引用std::string
,这就是为什么它是未定义的行为.
编译器可能会对此发出警告,如果您正在使用gcc,那么它几乎可以肯定它会如此,您可以忽略警告或编译而不会发出警告ON.