【发布时间】:2014-07-21 16:56:44
【问题描述】:
我正在做一个随机练习,给定一个整数数组和双精度数组,你应该计算整数和双精度数的大小。
对于整数大小,我只是简单地使用两个指针指向两个相邻的数组,然后我找到它们的区别。因为指针算法将其计算为差 1,所以我将指针转换为整数,因为我假设指针将明确引用 4 个字节的内存,并且我得到了正确的结果 (4)。
现在,我为双打尝试了同样的操作,但我得到了这个错误:pointer value used where a floating point value was expected
一个可能的猜测是双精度是 8 个字节,而指针是 4 个字节。但我不确定这是否真的重要。
有什么见解吗?
我的确切路线:
int doubSize = (double)doubPtr2 - (double)doubPtr1;
//where doubtPtr1 and doubPtr2 poiny to two adjacent indexes of double array
【问题讨论】:
-
这个问题不需要任何这样的转换,甚至不需要为任何类型的数组使用不同的代码。
-
你不能使用
sizeof吗?代码示例也会非常有用。 -
@aruisdante sizeof 是不允许的。
-
给定的函数只是一个大小为 10 的双精度数组和两个双指针,所以我想利用所有这三个。铸造是我能想到的唯一解决方案。