给定以下代码:
#include "stdafx.h"
#include "string.h"
static char *myStaticArray[] = {"HelloOne", "Two", "Three"};
int _tmain(int argc, _TCHAR* argv[])
{
char * p = strstr(myStaticArray[0],"One");
char hello[10];
memset(hello,0,sizeof(hello));
strncpy(hello,"Hello",6);
strncpy(p,"Hello",3); // Access Violation
return 0;
}
当它尝试写入 myStaticArray[0] 的地址时,我遇到了访问冲突。为什么这是个问题?
背景:我主要作为 C# 开发人员将旧的 C++ 移植到 C#,所以请原谅我的无知!这段代码显然不是旧版本中的问题,所以我很困惑......