mac_n_cheese_pog's blog

By mac_n_cheese_pog, history, 3 years ago, In English

dunno whats wrong

int n;

cin >> n;

int a[100][100];

for(int i=0;i<n;i++)

{

for(int j=0;j<n;j++)

{

    cin >> a[i][j];

}

}

for(int i=0;i<n;i++)

{

for(int j=0;j<n;j++)

{

    cout << a[i][j];

}

cout << endl;

}

  • Vote: I like it
  • -30
  • Vote: I do not like it

| Write comment?
»
3 years ago, # |
Rev. 2   Vote: I like it -8 Vote: I do not like it

If Your value of n is >=101 your code will give RTE.

I hope this will be helpful.

  • »
    »
    3 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    i tried a[n][n] but cant,so i deciced to fix the size

    • »
      »
      »
      3 years ago, # ^ |
        Vote: I like it -8 Vote: I do not like it

      Yes you should try to use a[n][n] but only for a specific upper bound of n this notation is valid.

      Not sure but allocation of around [100000][100000] give error in my machine :(

      Don't know the accurate upper bound.

      • »
        »
        »
        »
        3 years ago, # ^ |
          Vote: I like it +3 Vote: I do not like it

        of course it gives an error, 100000*100000 integers is about 40000 megabytes

»
3 years ago, # |
  Vote: I like it 0 Vote: I do not like it

You don't understand what a 2D array memorizes.

If we define a[N][M] , that means you can use a[0~N-1][0~M-1] , and other position will get some wrong value or Runtime Error.

If N,M is too big , you will get Memory Limit Exceeded.