我愿意访问我的SQLite数据库中coloumn中的特定元素,所以为了实现这一点,我使用了一个select语句
char *query = {0};
strcat(query, "SELECT ");//exception thrown here
strcat(query, (char*)arr);//The value to be asscessed
strcat(query, " FROM CARS");
但这是在ucrtbased.dll中抛出异常的原因?
更新
我已经提到了这个答案here并试了一下,char* line1 = "SELECT ";
char* line2 = (char*)arr;
char* line3 = " FROM CARS";
size_t len1 = strlen(line1);
size_t len2 = strlen(line2);
size_t len3 = strlen(line3);
char *query = (char*)malloc(len1 + len2 + len3 + 1);
if (!query) abort();
memcpy(query, line1, len1);
memcpy(query + len1, line2, len2);
query[len1 + len2 + len3] = '\0';
但是我发现我做错了什么(因为跳出来跳到了else语句,这意味着无效的sqlite语句),我无法理解它,请帮助我。
我也提到了这个教程@ cplusplus.com,但无法弄明白 谢谢
答案 0 :(得分:1)
您尚未向query
分配任何内存,并尝试将某些字符复制到其中。如果已知大小,您可以在char query[256] = {0};
之类的堆栈上创建变量。否则,您可以使用new[]
动态分配内存,并使用delete[]
释放内存。