C++ Win32,未处理的异常访问冲突编写

C++ Win32, Unhanded exception access violating writing

我有以下代码:

    TCHAR szAppName[] = TEXT("HellowWin");

    TCHAR *trTemp = L" ";
    *trTemp= szAppName[5];

基本上我在这里做的是尝试在 szAPPName 的索引 5 处分配 "value" 来替换指针 trTemp 表示的值,但是我收到访问冲突错误。

有什么想法吗?

完整代码如下:

#include <Windows.h>
#include <stdio.h>
#include "stdafx.h"
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShoe)
{
        TCHAR szAppName[] = TEXT("HellowWin");

        TCHAR *trTemp = L" ";
        *trTemp= szAppName[5];
}
TCHAR *trTemp = L" ";

赋值 trTemp 指向一个常量。该常量将位于代码段中的某处。当您随后尝试覆盖它时,O/S 不喜欢它。

TCHAR trTemp[2]={L' ',L'[=11=]'};

应该能看到你吧

字符串文字是只读的。写给他们是未定义的行为。当您将字符串文字分配给指针时,您应该添加 const.

const wchar_t *trTemp = L" ";

如果要写入变量,将其声明为数组,以便它保存字符串文字内容的副本,因此可写

wchar_t trTemp[] = L" ";

(请明确使用 wchar_t 而不是那些宏。)