gpt4 book ai didi

C++ 指向另一点的指针

转载 作者:太空狗 更新时间:2023-10-29 20:43:02 27 4
gpt4 key购买 nike

目前我有指针为我的两个对象指针工作,例如

Object * obj1;
Object * obj2;

obj2 = obj2;

如果我有,我将如何让它工作

Object * array[10][10];
Object * newarray[10][10];

我可以在不使用 for 循环遍历元素的情况下将数组分配给 newarray 吗?

询问是因为我的主类中有数组。然后将其传递给子类以便对其进行处理,需要在新类中保存一个拷贝,以便子类函数可以访问它。

谢谢

最佳答案

Object * array[10][10]; 不是指向 10x10 对象数组的指针。它是指向对象的 10x10 指针数组。

#include <iostream>
struct Object {};
Object * arr[10][10];
int main(int argc, const char* argv[])
{
std::cout << "sizeof arr = " << sizeof(arr) << std::endl;
return 0;
}

生产arr1 的大小 = 400

如果你想坚持类似 C 的行为,你可以使用 memcpy:

#include <iostream>
#include <string.h>

struct Object {};
Object * arr1[10][10];
Object * arr2[10][10];

...

memcpy(arr1, arr2, sizeof(arr1));

如果你想像其他人所说的那样采用 C++ 方法,请查看 std::array 或 std::vector。

关于C++ 指向另一点的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16764490/

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