在不进行拷贝的情况下,从指针转换为字节数组,可以使用 memcpy
函数来实现。以下是一个示例代码:
#include
#include
int main() {
int* ptr = new int[5]{1, 2, 3, 4, 5}; // 指针指向一块内存
// 计算需要的字节数
size_t size = sizeof(int) * 5;
// 创建一个字节数组
unsigned char* byteArr = new unsigned char[size];
// 将指针指向的内存拷贝到字节数组中
memcpy(byteArr, ptr, size);
// 打印字节数组的内容
for (size_t i = 0; i < size; i++) {
std::cout << static_cast(byteArr[i]) << " ";
}
std::cout << std::endl;
// 释放内存
delete[] ptr;
delete[] byteArr;
return 0;
}
这个示例中,我们首先创建一个指针 ptr
,它指向一个包含 5 个整数的数组。然后,我们计算需要的字节数,并创建一个与字节数相同大小的字节数组 byteArr
。最后,我们使用 memcpy
函数将指针指向的内存拷贝到字节数组中,并打印字节数组的内容。
请注意,在实际使用中,需要确保指针指向的内存是有效的,并且字节数组的大小足够容纳指针指向的数据。
下一篇:不进行扩展时推断通用类型