#include <iostream> #define NVAL 3 #define DIM_2 10 // use some more meaningfull name #define DIM_3 2 // assuming something like struct Card { int suit; int val; }; int main() { // You are comparing a 3D array declared like this: Card permutations[NVAL][DIM_2][DIM_3]; // with a dynamical allocated one int valid = NVAL; Card ***perm = new Card**[valid]; // congrats, you are a 3 star programmer and you are about to become a 4... for ( int i = 0; i < valid; i++ ){ perm[i] = new Card*[DIM_2]; // you inverted this ^^^ dimension with the inner one for (int j = 0; j < DIM_2; j++) // same value ^^^^^ perm[i][j] = new Card[DIM_3]; // inner dimension ^^^^^ } // let's test them for ( int i = 0; i < NVAL; ++i ) { for ( int j = 0; j < DIM_2; ++j ) { for ( int k = 0; k < DIM_3; ++k ) { permutations[i][j][k] = { k % 2, j }; perm[i][j][k] = permutations[i][j][k]; } } } for ( int i = 0; i < NVAL; ++i ) { for ( int j = 0; j < DIM_2; ++j ) { for ( int k = 0; k < DIM_3; ++k ) { std::cout << "card: " << i << ' ' << j << ' ' << k << " = " << permutations[i][j][k].suit << ' ' << permutations[i][j][k].val << " or " << perm[i][j][k].suit << ' ' << perm[i][j][k].val << '\n'; } } } return 0; }
Standard input is empty
card: 0 0 0 = 0 0 or 0 0 card: 0 0 1 = 1 0 or 1 0 card: 0 1 0 = 0 1 or 0 1 card: 0 1 1 = 1 1 or 1 1 card: 0 2 0 = 0 2 or 0 2 card: 0 2 1 = 1 2 or 1 2 card: 0 3 0 = 0 3 or 0 3 card: 0 3 1 = 1 3 or 1 3 card: 0 4 0 = 0 4 or 0 4 card: 0 4 1 = 1 4 or 1 4 card: 0 5 0 = 0 5 or 0 5 card: 0 5 1 = 1 5 or 1 5 card: 0 6 0 = 0 6 or 0 6 card: 0 6 1 = 1 6 or 1 6 card: 0 7 0 = 0 7 or 0 7 card: 0 7 1 = 1 7 or 1 7 card: 0 8 0 = 0 8 or 0 8 card: 0 8 1 = 1 8 or 1 8 card: 0 9 0 = 0 9 or 0 9 card: 0 9 1 = 1 9 or 1 9 card: 1 0 0 = 0 0 or 0 0 card: 1 0 1 = 1 0 or 1 0 card: 1 1 0 = 0 1 or 0 1 card: 1 1 1 = 1 1 or 1 1 card: 1 2 0 = 0 2 or 0 2 card: 1 2 1 = 1 2 or 1 2 card: 1 3 0 = 0 3 or 0 3 card: 1 3 1 = 1 3 or 1 3 card: 1 4 0 = 0 4 or 0 4 card: 1 4 1 = 1 4 or 1 4 card: 1 5 0 = 0 5 or 0 5 card: 1 5 1 = 1 5 or 1 5 card: 1 6 0 = 0 6 or 0 6 card: 1 6 1 = 1 6 or 1 6 card: 1 7 0 = 0 7 or 0 7 card: 1 7 1 = 1 7 or 1 7 card: 1 8 0 = 0 8 or 0 8 card: 1 8 1 = 1 8 or 1 8 card: 1 9 0 = 0 9 or 0 9 card: 1 9 1 = 1 9 or 1 9 card: 2 0 0 = 0 0 or 0 0 card: 2 0 1 = 1 0 or 1 0 card: 2 1 0 = 0 1 or 0 1 card: 2 1 1 = 1 1 or 1 1 card: 2 2 0 = 0 2 or 0 2 card: 2 2 1 = 1 2 or 1 2 card: 2 3 0 = 0 3 or 0 3 card: 2 3 1 = 1 3 or 1 3 card: 2 4 0 = 0 4 or 0 4 card: 2 4 1 = 1 4 or 1 4 card: 2 5 0 = 0 5 or 0 5 card: 2 5 1 = 1 5 or 1 5 card: 2 6 0 = 0 6 or 0 6 card: 2 6 1 = 1 6 or 1 6 card: 2 7 0 = 0 7 or 0 7 card: 2 7 1 = 1 7 or 1 7 card: 2 8 0 = 0 8 or 0 8 card: 2 8 1 = 1 8 or 1 8 card: 2 9 0 = 0 9 or 0 9 card: 2 9 1 = 1 9 or 1 9