sprintf()访问读取位置时发生冲突
sprintf() access violation reading location
我真的不明白,下面是发生的事情:
char buffer1[100];
sprintf_s(buffer1, "whatever %s", "something");
效果很好。
但以下情况并非如此:
char buffer1[100];
sprintf_s(buffer1, "whatever %s %s", "something", "somethingelse");
错误:读取位置0x00000005时发生未处理的异常访问冲突。
我想如果我先用strcpy_s把它分解,然后用sprintf_s,它会起作用,但那会浪费一切。
提前谢谢。
PS:我正在使用Visual Studio
编辑:代码更新,我写错东西真的很快。以下是导致错误的实际代码:
sprintf(query, "INSERT INTO `members` (`id`, `username`, `email`) VALUES ('%s', '%s', '%s')", id, username, email);
问题是我试图使用%s将一个整数附加到char数组。这个问题有两种解决方案,你可以使用%d或to_string将整数设为字符串值来解决这个问题。
解决方案1:
sprintf(query, "INSERT INTO `members` (`id`, `username`, `email`) VALUES ('%d', '%s', '%s')", id, username, email);
解决方案2:
sprintf(query, "INSERT INTO `members` (`id`, `username`, `email`) VALUES ('%s', '%s', '%s')", to_string(id).c_str(), username, email);
相关文章:
- 写入位置0x0000000C时发生访问冲突
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 0xC0000005:访问冲突写入位置0xCDCDCDCD动态分配错误
- 0xC0000005:访问冲突读取位置 0x00000000. 重载 == 运算符的问题
- (此函数用于计算 SMA).在 FA.exe 中0x00509159引发异常: 0xC0000005:访问冲突读取位置0
- 0xC0000005:读取位置0xCDCDCDC1时发生访问冲突
- 0xC0000005:读取位置0xCDCDCDCD时发生访问冲突
- 读取类的析构函数中的位置时发生访问冲突
- 在尝试使用CUDA分配内存时,我遇到了访问冲突写入位置错误
- 创建 2D 数组0xCCCCCCCC访问冲突写入位置
- 0x0F50DF58:0xC0000005:访问冲突读取位置0x0047CA04时未处理的异常
- 在 DLL 中嵌入 Python:Py_DECREF列表对象时访问冲突读取位置
- 在 C 代码中调用 Python 函数时第三次出现访问冲突写入位置错误
- 0xC0000005:访问冲突读取位置0x0000000000000008
- 使用动态数组访问冲突写入位置
- C++访问冲突读取位置0xDDDDDDCD当我尝试删除已更新的数组时
- 使用向量的函数崩溃,调试器说访问冲突读取位置
- vc++ 访问冲突读取位置
- C++ - 智能指针 - 访问冲突读取位置0xDDDDDDDD
- C++访问冲突读取位置错误