当前位置:  技术问答>linux和unix

char*和char**运用的问题

    来源: 互联网  发布时间:2016-04-18

    本文导语:  大家好!   向各位请教一个基础问题,常年没用C写代码,实在生疏了。   我的代码里调用了sqlite3数据库,定义错误信息,我用的变量类型是char** errmsg,但是输出我是用的*errmsg,结果就出问题了,代码可编译...

大家好!
  向各位请教一个基础问题,常年没用C写代码,实在生疏了。
  我的代码里调用了sqlite3数据库,定义错误信息,我用的变量类型是char** errmsg,但是输出我是用的*errmsg,结果就出问题了,代码可编译,但是我的窗体启动不了。
  代码如下,请老师们指教:


   sqlite3 *db = NULL;
   int result;
   char **errmsg = NULL; //这里我定义了指针变量
   result = sqlite3_open("./userdata/data", &db );

   result = sqlite3_exec( db, "select * from plans", LoadMyInfo, NULL, errmsg);//这里详细说明一下
                                                                               //若前面定义成char *errmsg
                                                                               //这里就会出错,说无法转换
   //error: cannot convert ‘char*’ to ‘char**’ for argument ‘5’ to ‘int 
   // sqlite3_exec(sqlite3*, const char*, int (*)(void*, int, char**, char**), void*, char**)’
      
   if(result != SQLITE_OK){
      printf( "错误码:%d,错误原因:%sn", result, errmsg );//然后是这里,会有一个warning提示。
                                                           //若我写成*errmsg,则GTK+窗口启动不了。
   //warning: format ‘%s’ expects type ‘char*’, but argument 3 has type ‘char**’
    }



请高人详细讲解一下,char*和char**的应用,感谢!

|

简单来说,char * 是指向char的指针,char** 是指向char的指针的指针。

这样写比较容易理解
char *errmsg = NULL;

 result = sqlite3_exec( db, "select * from plans", LoadMyInfo, NULL, &errmsg);

  if(result != SQLITE_OK){
      printf( "错误码:%d,错误原因:%sn", result, errmsg );//

    
 
 

您可能感兴趣的文章:

  • const char 和char 的转换问题
  • 问个低级的问题:在windows里 有 char * strfilename1 =new char[255];strcpy(strfilename1,"C:\finger2.bmp")的用法,在纯java里怎么写
  • 内核中static inline int strncmp(const char * cs,const char 的问题
  • 小问题:如何将int转换为char?
  • c 问题main(volatile int argc, char **volatile argv)/**问题
  • 菜鸟问题-如何将char[]转化为string??
  • 新手问题,立刻给分:如何把一个char[]的值赋给byte[]
  • 一个小问题:如何将一个char字符转换为相应的ASCII码值?
  • ejb的finder方法找不到表中char类型数据的问题
  • 请问一个CHAR的问题,谢谢。
  • char 类型如何与16进制类型比较的问题,紧急
  • char *p问题。
  • 弱问题int main __P((int, char *[]));中__P什么意思?
  • 关于“char[] ”型数组的显示问题
  • linux下关于char *p字符指针的问题
  • byte、char数组转换为String的问题
  • 探讨编写int strlen(char *strDest);不允许定义变量的问题
  • u32型与char型数组内容的读写与printf显示有问题
  • statvfs(const char *path, struct statvfs *buf)的问题
  • 共享内存问题,只能得到int值,不能得到char*的值?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql类types的类成员方法: char定义及介绍
  • u_char数据类型?u_char与char是什么关系?
  • java命名空间javax.lang.model.type枚举typekind的类成员方法: char定义及介绍
  • 判斷兩個char[]相等用什麽函數?我用(char1.equals(char2))它總是認爲不等,爲什麽??
  • java命名空间java.awt.event类keyevent的类成员方法: char_undefined定义及介绍
  • 原来char c=70和char c='u0070'有区别的
  • java命名空间javax.print类docflavor.char_array的类成员方法: text_plain定义及介绍
  • 谁能告诉我char*被强制转化成char**,内部是怎么运算的?
  • java命名空间java.awt.font类textattribute的类成员方法: char_replacement定义及介绍
  • main(int argc,char *argv[])和main(int argc,char **argv[])的区别
  • java命名空间javax.print类docflavor.char_array的类成员方法: text_html定义及介绍
  • 关于char*,char[]
  • IT科技资讯 iis7站长之家
  • 求高人指点C基础char[]和char*比较,不胜感激!
  • 奇怪,为什么char ch='u10100'编译错误,而char ch='ujava'编译成功呢?
  • C语言中char*和char[]用法区别分析
  • 请问: setsockopt(s,SOL_SOCKET,SO_DONTLINGER,(const char*)&bDontLinger,sizeof(BOOL)); 中的,(const char*)&bDontLinger是什么意思啊
  • 使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法
  • c# StringBuilder.Replace 方法 (Char, Char, Int32, Int32)
  • 基于C语言char与unsigned char的区别介绍
  • 浅析string 与char* char[]之间的转换


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3