我有以下代码:
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
而不是这些宏。)