我有以下代码:
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];
}
答案 0 :(得分:2)
TCHAR *trTemp = L" ";
指定trTemp
指向常量。该常量将位于代码段中的某个位置。当你尝试覆盖它时,O / S并不喜欢它。
TCHAR trTemp[2]={L' ',L'\0'};
应该看对你。
答案 1 :(得分:2)
字符串文字是只读的。写给他们是不明确的行为。将字符串文字指定给指针时,应添加const
。
const wchar_t *trTemp = L" ";
如果要写入变量,请将其声明为数组,以便它保存字符串文字内容的副本,从而可写
wchar_t trTemp[] = L" ";
(请明确使用wchar_t
而不是那些宏。)