如何在c ++中将双指针矩阵转换为单个指针向量?

时间:2016-04-15 09:59:43

标签: c++ arrays pointers matrix

我有一个双指针矩阵,我想在c ++中转换为单个指针向量。 这是代码:

int main(){
    int AA[2][2] = {1,2,3,4};
    int i,j,k;
    int kolB,barB;
    int **BB,**CC;
    int *A,*B,*C;

    BB = new int*[barB];
    CC = new int*[2];

    for(i=0;i<kolB;i++){
        BB[i] = new int[kolB];
        CC[i] = new int[kolB];
    }

    free(BB);
    free(CC);

    return 0;
}

我想将** AA值插入* A,你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如果我正确理解你的问题,你想要访问双指针数组中的每个元素并将它放在一个指针数组中,如下所示:

//assuming kolB,barB,**BB have been initialized
B=new int[kolB*barB];//create a one dimensional integer array to be pointed to by int* B

//then copy the value from double pointer array to this new one dimensional array
for(int i=0;i<barB;i++)
   for(int j=0;j<kolB;j++)
       B[(i*barB)+j]=BB[i][j];//you need to copy each value

如果您正在考虑执行B=(int*)BB;并像B[i]那样访问它,那就不行了,所以不要这样做。顺便说一下,你的问题的评论部分有一些有趣的评论,你可能想看看它们并改进你的代码。