我在一个 cpp 文件中有以下代码,该文件是 Visual c++ 2010 中项目的一部分我不明白为什么对 free 的调用失败。
#include <time.h>
#include "stdafx.h"
#include <wchar.h>
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
wchar_t * getRandomShortToken(){
int i;
wchar_t * token = 0;
srand((unsigned int)time(NULL));
token = (wchar_t*)malloc(sizeof(wchar_t) * 6);
memset(token, 0, sizeof(wchar_t*) *6);
for(i = 0; i < 5; i++){
token[i] = ( rand() % 20 ) + 64;
}
return token;
}
int _tmain(int argc, _TCHAR* argv[]){
wchar_t * token = 0;
system("pause");
token = getRandomShortToken();
printf("My Token is '%ls'\n', token);
system("pause");
free(token);
system("pause");
return 0;
}
请注意,令牌已正确填充到 printf!