【发布时间】:2015-10-31 18:43:15
【问题描述】:
我有这个代码:
char *charTable[] = { "test1", "test2", "test3" };
size_t originSize[] = { 6, 6, 6 };
wchar_t* textValues[3];
const size_t newsize = 100;
for (int i = 0; i < 3; i++) {
wchar_t wcstring[newsize];
size_t convertedChars = 0;
mbstowcs_s(&convertedChars, wcstring, originSize[i], charTable[i], _TRUNCATE);
wcscat_s(wcstring, L"");
textValues[i] = wcstring;
}
我想将"test1"、"test2"、"test3" 放入textValues 中作为wchar_t*,但在循环后textValues 包含"test3"、"test3"、"test3"。
【问题讨论】:
-
wcstring在循环后超出范围,这意味着textValues[i]是一个悬空指针(意味着它没有指向任何有效的指针)。