fork(1) download
  1. #include <iostream>
  2.  
  3. #define NVAL 3
  4. #define DIM_2 10 // use some more meaningfull name
  5. #define DIM_3 2
  6.  
  7. // assuming something like
  8. struct Card {
  9. int suit;
  10. int val;
  11. };
  12.  
  13. int main() {
  14. // You are comparing a 3D array declared like this:
  15. Card permutations[NVAL][DIM_2][DIM_3];
  16.  
  17. // with a dynamical allocated one
  18. int valid = NVAL;
  19. Card ***perm = new Card**[valid];
  20. // congrats, you are a 3 star programmer and you are about to become a 4...
  21. for ( int i = 0; i < valid; i++ ){
  22. perm[i] = new Card*[DIM_2];
  23. // you inverted this ^^^ dimension with the inner one
  24.  
  25. for (int j = 0; j < DIM_2; j++)
  26. // same value ^^^^^
  27. perm[i][j] = new Card[DIM_3];
  28. // inner dimension ^^^^^
  29. }
  30.  
  31. // let's test them
  32. for ( int i = 0; i < NVAL; ++i ) {
  33. for ( int j = 0; j < DIM_2; ++j ) {
  34. for ( int k = 0; k < DIM_3; ++k ) {
  35. permutations[i][j][k] = { k % 2, j };
  36. perm[i][j][k] = permutations[i][j][k];
  37. }
  38. }
  39. }
  40.  
  41. for ( int i = 0; i < NVAL; ++i ) {
  42. for ( int j = 0; j < DIM_2; ++j ) {
  43. for ( int k = 0; k < DIM_3; ++k ) {
  44. std::cout << "card: " << i << ' ' << j << ' ' << k << " = "
  45. << permutations[i][j][k].suit << ' '
  46. << permutations[i][j][k].val << " or "
  47. << perm[i][j][k].suit << ' ' << perm[i][j][k].val << '\n';
  48. }
  49. }
  50. }
  51.  
  52. return 0;
  53. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
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