我在汇编中编程,发生了以下错误:
在Application1.exe中0x00B71792处抛出异常:0xC0000005:访问冲突写入位置0x00B76BED。
Application1.exe中0x00B71792处的未处理异常:0xC0000005:访问冲突写入位置0x00B76BED。
我正在使用Visual Studio进行编程。以下是我的代码:
PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Class 'PDO' not found in /home/origomal/laravel/config/database.php:16
根据调试char *strCat(char *dest, char *src) {
__asm {
xor eax, eax
mov ecx, 0xffffffff
mov esi, src
mov edi, dest
mov al, 0
cld
repne scasb
dec edi
L0 :
lodsb
stosb
test al, al
jne L0
mov eax, edi
};
}
指令中的错误ocurr。
在我看来,代码是正确的。找不到错误。
答案 0 :(得分:2)
崩溃的问题在于您尝试将字符连接到字符串文字上。这是C ++(和C)中未定义的行为。
要安全地调用您的功能,您必须
1)确保目标缓冲区足够大以容纳连接字符串,并且
2)目标缓冲区是可写内存,而不是字符串文字。
要使内存可写,一种方法是简单地声明一个大小足以容纳整个连接字符串的char数组:
char destination[100] = "abc";
strCat(destination, "123");