我有以下代码:

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

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


基本上,我在这里正在尝试在szAPPName的索引5处分配“值”以替换指针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];
}

最佳答案

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

const wchar_t *trTemp = L" ";


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

wchar_t trTemp[] = L" ";


(请显式使用wchar_t而不是这些宏。)

10-07 20:10