指针数组(指向对象的指针数组)

时间:2016-05-14 07:30:55

标签: c++ arrays pointers

我的目标是创建一个数组,其中每个单元格都有一个指向另一个指向对象数组的指针(我定义的数据处理器类。)我有多个相同类型的数组,声明如下:

dataProcessor *dparr[num];

我动态地分配和存储指向这些数组中的dataProcessor对象的指针。每个数组都有相同数量的指针。

我想制作一种容器数组,以包含指向其中每一个的指针,以便我可以将其作为参数传递给我编写的函数,该函数将每个指针数组放在自己的对象上用于数据处理的线程。

所以我的尝试是做这样的测试:

dataProcessor** king_arr[20];

    for(int i = 0; i < 20; i++){
        dataProcessor *dparr[(UPPER_CHUNK_LIM-LOWER_CHUNK_LIM)+1];
        for(int j = 1; j <= 2; j++){
            string dir = ABS_PATH + to_string(j) + "/";
            dparr[j] = new dataProcessor(dir, filenames, j);

        }
        king_arr[i] = dparr;

    }

但是,我遇到了一个问题,即king_arr中的每个单元都指向一个包含16个空指针的空数组?程序将正确存储内部for循环中的两个元素,然后其余的只是垃圾。只有 [0]和1的值有效。另外,为什么它是&#34; [0]&#34;而不只是&#34; [0]&#34;?图片如下:

enter image description here

如果这还不够,请告诉我是否需要添加其他内容。 dataProcessor构造函数没有做任何奇怪的事情。它对手动内存管理没有任何作用。漂亮的磨坊班。

TL; DR

我觉得问题在于我实际存储它:

king_arr[i] = dparr;

如果这是错误,有人可以从概念上解释我搞砸了什么以及正确的方法是什么?

您可以告诉我如何改进帖子,而不是投票而不是帮助吗?我很乐意这样做。

0 个答案:

没有答案