#include<stdio.h>
#include<stdlib.h>
#include<mysql/mysql.h>
int main()
{
  char *tempry;
  tempry =  (char *) malloc(20*sizeof(char));
  sprintf(tempry,"hello");
  printf("\n%s\n",tempry);
  /* Here i can use mysql connectivity code */
  return 0;
}


当我使用此gcc test.c -o test -g gcc编译命令时,它将给我输出

hello


如果我使用此gcc -I/usr/local/include -L/usr/lib64/mysql -lmysqlclient test.c -o test -g行,那么它将在此行中给我segmenation fault error

tempry =  (char *) malloc(20*sizeof(char));

最佳答案

检查您的mysql_real_connect()。您可能将NULL值传递给mysql_real_connect()

mysql_init()失败时返回NULL。那么您可以将此NULL传递给mysql_real_connect(),从而导致它成为segmentation fault

mysql_init() Reference page

关于c - 添加mysql客户端库时发生段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20948844/

10-12 15:37