我试图搜索网站的这个问题,但没有发现这完全是,虽然这个问题被讨论了很多...什么时候全局静态常量变量被初始化?
我有这样的声明,以CPP文件,不在任何功能:
static const char* gText = "xxxxxxxxxxx";
虽然它有一个固定的大小,我从一个静态分析工具(Klocwork的)警告,当我试图把它复制到另一个字符*变量 - 对可能出界违例的:
char xText[32];
SecureZeroMemory(xText, 32);
memcpy(xText, gText, strlen(gText));
这是假的吗? ive或是以后初始化的全局变量?
谢谢!
KLOCWORKS所指的是哪一条? – ckv 2010-06-21 08:12:52
memcpy()之一。 – IUnknownPointer 2010-06-21 09:26:47
btw,指针本身不是const的,所以,它可以改为指向另一个更长的字符串 – sellibitze 2010-06-21 09:39:04