首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >传入函数的wchar_t数组

传入函数的wchar_t数组
EN

Stack Overflow用户
提问于 2011-09-21 00:10:04
回答 2查看 1.6K关注 0票数 2

我正在用visual studio 2010在windows上做一个C程序。

我将一个wchar_t数组传递给一个函数。

代码语言:javascript
运行
复制
//in main
wchar_t bla[1024] = L"COM6";

mymethod(bla);

static void mymethod(wchar_t *bla) {
    //do stuff
}

我使用调试器观察了bla,sizeof( bla ),注意到在main中,bla的类型是wchar_tsizeof(bla) = 2048,而在mymethod中,bla的类型是unsigned short*,并且具有sizeof(bla) = 4

为什么会这样呢?

我希望将bla传递给该方法,以便该方法可以更改数组,而不是返回已编辑的数组。然而,swprintf不起作用,因为我希望sizeof(bla)是1024而不是4。

干杯。

EN

Stack Overflow用户

回答已采纳

发布于 2011-09-21 00:15:40

在main中,您正在计算数组的大小:

代码语言:javascript
运行
复制
sizeof(bla); // 1024 * sizeof(unsigned short) = 2048 

在您的函数中,如果使用sizeof,您将计算指针的字节大小:

代码语言:javascript
运行
复制
sizeof(bla); //means sizeof (wchar_t *) = 4
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7488315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档