我有一个双指针矩阵,我想在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,你能帮我解决这个问题吗?
答案 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]
那样访问它,那就不行了,所以不要这样做。顺便说一下,你的问题的评论部分有一些有趣的评论,你可能想看看它们并改进你的代码。