C GUI程序在运行时崩溃

C GUI程序在运行时崩溃,c,user-interface,sqlite,runtime-error,C,User Interface,Sqlite,Runtime Error,我正在使用graphApp GUI库编写一个C GUI程序,此代码段导致我的程序崩溃: ... char *str,*sql; // Read input from text field str = get_control_text(event_name); // Insert into database sprintf(sql,"INSERT INTO event VALUES('%s');",str); db_status = sqlite3_exec(db,sql,0,0,&m

我正在使用graphApp GUI库编写一个C GUI程序,此代码段导致我的程序崩溃:

...
char *str,*sql;

// Read input from text field
str = get_control_text(event_name);

// Insert into database
sprintf(sql,"INSERT INTO event VALUES('%s');",str);
db_status = sqlite3_exec(db,sql,0,0,&mssg);

get\u control\u text()
用于从文本字段读取数据,其返回类型为
char*
。当我输入一个字符串时,程序会正常终止,但如果字符串中包含空格,程序将在将数据插入数据库后崩溃。有人能帮我找出毛病吗?谢谢。

您忘了为
sql

分配内存
sql
在哪里初始化?(同样,使用类似于
gdb
,它是你的朋友)嘘。你只有撞车吗?你会认为编译器至少会给我们一个警告。@RobertHarvey如果你再打开一些警告,它会的。例如,在gcc-Wall:test.c:9:12:warning:sql在函数[-Wuninitialized]中未初始化时使用,为了避免此类错误(和sql注入攻击),请使用。