- 论坛徽章:
- 0
|
测试程序的完整源码
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <error.h>
#include <wchar.h>
#include <locale.h>
int main()
{
char szContent[201];
mbstate_t state;
wchar_t wcsContentLen_Caption[10];
wchar_t *test;
setlocale(LC_ALL, "zh_CN.gbk");
memset(wcsContentLen_Caption, 0, sizeof(wchar_t)*10);
wcsContentLen_Caption[0] = 0x5185;
wcsContentLen_Caption[1] = 0x5BB9;
wcsContentLen_Caption[2] = 0x957F;
wcsContentLen_Caption[3] = 0x5EA6;
wcsContentLen_Caption[4] = L'\0';
memset(szContent, 0, 201*sizeof(char));
memset(&state, 0, sizeof(mbstate_t));
wcsrtombs(szContent, (const wchar_t**)&wcsContentLen_Caption, 201, &state);
//如果把上一行注释掉,把下面两行解开注释,编译执行就没有段错误,正常,
//test = wcsContentLen_Caption;
//wcsrtombs(szContent, (const wchar_t**)&test, 201, &state);
return 0;
}
wcsrtombs函数的第二个参数在这里只能接收wcha_t*的地址,如果我使用wchar_t数组名称的地址,可以编译但是执行有段错误,这里我就不明白,数组的名字不是可以当作指针来用吗?
[ 本帖最后由 supeiwang 于 2006-11-10 08:50 编辑 ] |
|