gpt4 book ai didi

C - 在整数中存储一个 int 指针

转载 作者:行者123 更新时间:2023-12-04 11:14:16 25 4
gpt4 key购买 nike

我有任何 int 类型的数组,需要在这个数组中存储指向数组另一部分的指针。

问题是,在 64 位系统上,指针的大小是 8 个字节,而 int 的大小是 4 个字节,导致编译器警告(例如警告从不同大小的整数转换为指针)

我(think0 我理解为什么编译器在提示,显然试图将 8 个字节放入 4 个字节不是一个聪明的主意。问题是数组是按原样提供给我的,我必须只使用数组来存储.

最佳答案

如果您指的是同一个数组,为什么不只存储索引?

#include <limits>
#include <boost/static_assert.hpp>

int array[ARRAY_DIMENSION];

/**
* the following line will cause an error at compile-time if size_t
* is not enough to index the array.
*/

BOOST_STATIC_ASSERT(std::numeric_limits<size_t>::max() >= ARRAY_DIMENSION);

int access_array(size_t index)
{
size_t intended_index = array[index];
return array[intended_index];
}

关于C - 在整数中存储一个 int 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4204620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com