2010-12-01 23 views
0

我假设你很像标准数组(即整型数组),当你传递一个结构数组时,你必须用它传递数组的大小。然而我还不明白的是,当你将sizeof一个结构的第一个元素的时候,你会得到4(第一个元素的含义是4个字节?)。将一个结构数组传递给一个函数,并对其执行sizeof操作

现在我传递一个只包含字符串的结构数组。我检查一个数组元素的大小(记住它将是一个结构体)我得到类似于28的东西,但是在我将它传递给一个函数之后(并且通过传递给该函数,我的意思是传递给函数的地址在我的数组中第一个元素),我只得到4.

现在我猜测sizeof是获取我的结构在数组中的第一个元素。所以,我有型MYSTRUCT的我的数组myArray的:

MYSTRUCT { 字符串名称 字符串地址 字符串邮编 }

我相信sizeof会在看 “名”?但我知道一个事实,名称不是4字节长 - 它是10.

究竟是什么尺寸的看?内存结构是什么样的结构数组?

感谢 托马斯

+1

请在提问时指明语言。 – TelegramSam 2010-12-01 23:44:40

回答

0

四将是你通过了,而不是结构的大小其所提及的指针的大小。

+0

啊(看我的帖子)。我尝试解引用它,我得到了32.现在为什么作为我列表中的第一个元素是我定义为10个字符串的类型? – Prof 2010-12-02 01:54:35

0

sizeof()适用于类型而非对象。 sizeof(some_object)被隐式视为 - 使用伪符号 - “”。

相关问题