Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. What's wrong.... [modified]

What's wrong.... [modified]

Scheduled Pinned Locked Moved C / C++ / MFC
helpquestion
15 Posts 8 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    Astricks
    wrote on last edited by
    #1

    The below code sorts a matrix diagonally. Does it, but at the end it's throwing an "illegal" may be a bad access error. Why ?int main(int argc, char* argv[]) { int A[5][5];int i;int j; int temp; int c,flag; }
    input : 1-1-1 2-2-2 3-3-3 output: 1-2-3 1-2-3 1-2-3 -- modified at 6:02 Friday 12th January, 2007

    *

    P CPalliniC E N 4 Replies Last reply
    0
    • A Astricks

      The below code sorts a matrix diagonally. Does it, but at the end it's throwing an "illegal" may be a bad access error. Why ?int main(int argc, char* argv[]) { int A[5][5];int i;int j; int temp; int c,flag; }
      input : 1-1-1 2-2-2 3-3-3 output: 1-2-3 1-2-3 1-2-3 -- modified at 6:02 Friday 12th January, 2007

      *

      P Offline
      P Offline
      prasad_som
      wrote on last edited by
      #2

      You are accessing declared array with invalid index. int A[5][5]; should be accessed only from A[0][0] to A[4][4] where as you are accessing it through A[1][1] to A[5][5]

      Astricks wrote:

      for (i = 1;i<=5;i++) {

      You should modify this to,

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

      at all places you have done mistake.

      Prasad Notifier using ATL | Operator new[],delete[][^]

      A 1 Reply Last reply
      0
      • A Astricks

        The below code sorts a matrix diagonally. Does it, but at the end it's throwing an "illegal" may be a bad access error. Why ?int main(int argc, char* argv[]) { int A[5][5];int i;int j; int temp; int c,flag; }
        input : 1-1-1 2-2-2 3-3-3 output: 1-2-3 1-2-3 1-2-3 -- modified at 6:02 Friday 12th January, 2007

        *

        CPalliniC Offline
        CPalliniC Offline
        CPallini
        wrote on last edited by
        #3

        C/C++ arrays are 0-based, i.e. if you declare:

        int a[5];

        then you have the following items:

        a[0], a[1], a[2], a[3], a[4];

        on the other hand, a[5], is out-of-bounds. so the correct iteration will be

        for (i = 0;i<5;i++)
        a[i]= (whatever);

        :)

        If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.

        In testa che avete, signor di Ceprano?

        A 1 Reply Last reply
        0
        • A Astricks

          The below code sorts a matrix diagonally. Does it, but at the end it's throwing an "illegal" may be a bad access error. Why ?int main(int argc, char* argv[]) { int A[5][5];int i;int j; int temp; int c,flag; }
          input : 1-1-1 2-2-2 3-3-3 output: 1-2-3 1-2-3 1-2-3 -- modified at 6:02 Friday 12th January, 2007

          *

          E Offline
          E Offline
          Eytukan
          wrote on last edited by
          #4

          int A[5][5];int A[6][6];


          Code-Frog:So if this is Pumpkinhead. Time for him to run and hide. It's an interesting thought really.

          CPalliniC R A 3 Replies Last reply
          0
          • E Eytukan

            int A[5][5];int A[6][6];


            Code-Frog:So if this is Pumpkinhead. Time for him to run and hide. It's an interesting thought really.

            CPalliniC Offline
            CPalliniC Offline
            CPallini
            wrote on last edited by
            #5

            you're wasting 11 integers...:):-D:)

            If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.

            In testa che avete, signor di Ceprano?

            E 1 Reply Last reply
            0
            • A Astricks

              The below code sorts a matrix diagonally. Does it, but at the end it's throwing an "illegal" may be a bad access error. Why ?int main(int argc, char* argv[]) { int A[5][5];int i;int j; int temp; int c,flag; }
              input : 1-1-1 2-2-2 3-3-3 output: 1-2-3 1-2-3 1-2-3 -- modified at 6:02 Friday 12th January, 2007

              *

              N Offline
              N Offline
              neilsolent
              wrote on last edited by
              #6

              In these lines: if (j-1 > 0 && i+1 <=5 ) { if (A[i][j] < A[i+1][j-]) "i" can be as large as 4. Which means elements A[5][j] are being accessed - but the declaration was int A[5][5] - i.e. the maximum element is A[4][j] So array out of bounds ..

              cheers, Neil

              1 Reply Last reply
              0
              • CPalliniC CPallini

                you're wasting 11 integers...:):-D:)

                If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.

                E Offline
                E Offline
                Eytukan
                wrote on last edited by
                #7

                in a way it's future proof ;P :rolleyes:. Just kidding!


                Code-Frog:So if this is Pumpkinhead. Time for him to run and hide. It's an interesting thought really.

                1 Reply Last reply
                0
                • E Eytukan

                  int A[5][5];int A[6][6];


                  Code-Frog:So if this is Pumpkinhead. Time for him to run and hide. It's an interesting thought really.

                  R Offline
                  R Offline
                  Rajesh R Subramanian
                  wrote on last edited by
                  #8

                  This will surely work, but the poor guy will never come to know what is wrong with his approach! I think thats the reason for you being voted down. (I gave a 5 to bring u up :-D because you put your time and efforts and shouldn't get voted down)


                  Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                  E 1 Reply Last reply
                  0
                  • R Rajesh R Subramanian

                    This will surely work, but the poor guy will never come to know what is wrong with his approach! I think thats the reason for you being voted down. (I gave a 5 to bring u up :-D because you put your time and efforts and shouldn't get voted down)


                    Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                    E Offline
                    E Offline
                    Eytukan
                    wrote on last edited by
                    #9

                    It was a quick-fix :rolleyes:, But I said that to indicate the error is about array-out-of-bounds. The 1 voted would have missed my point. :sigh:... anyway thanks :)


                    Code-Frog:So if this is Pumpkinhead. Time for him to run and hide. It's an interesting thought really.

                    J 1 Reply Last reply
                    0
                    • E Eytukan

                      It was a quick-fix :rolleyes:, But I said that to indicate the error is about array-out-of-bounds. The 1 voted would have missed my point. :sigh:... anyway thanks :)


                      Code-Frog:So if this is Pumpkinhead. Time for him to run and hide. It's an interesting thought really.

                      J Offline
                      J Offline
                      John R Shaw
                      wrote on last edited by
                      #10

                      I decided to add my 1 to the vote, because 0 was not a choice. You received a 1 vote because you did not provide an answer to the question. If the person asking the question understood your [joke] answer then they would not have needed to ask it in the first place. :sigh: Sorry, but the idea is to help and not make fun of the person asking the question.

                      INTP "Program testing can be used to show the presence of bugs, but never to show their absence."Edsger Dijkstra

                      E 1 Reply Last reply
                      0
                      • J John R Shaw

                        I decided to add my 1 to the vote, because 0 was not a choice. You received a 1 vote because you did not provide an answer to the question. If the person asking the question understood your [joke] answer then they would not have needed to ask it in the first place. :sigh: Sorry, but the idea is to help and not make fun of the person asking the question.

                        INTP "Program testing can be used to show the presence of bugs, but never to show their absence."Edsger Dijkstra

                        E Offline
                        E Offline
                        Eytukan
                        wrote on last edited by
                        #11

                        hmm :(


                        Code-Frog:So if this is Pumpkinhead. Time for him to run and hide. It's an interesting thought really.

                        H 1 Reply Last reply
                        0
                        • E Eytukan

                          hmm :(


                          Code-Frog:So if this is Pumpkinhead. Time for him to run and hide. It's an interesting thought really.

                          H Offline
                          H Offline
                          Hamid Taebi
                          wrote on last edited by
                          #12

                          It seems that on this forum we must only answer to questions;)


                          WhiteSky


                          1 Reply Last reply
                          0
                          • CPalliniC CPallini

                            C/C++ arrays are 0-based, i.e. if you declare:

                            int a[5];

                            then you have the following items:

                            a[0], a[1], a[2], a[3], a[4];

                            on the other hand, a[5], is out-of-bounds. so the correct iteration will be

                            for (i = 0;i<5;i++)
                            a[i]= (whatever);

                            :)

                            If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.

                            A Offline
                            A Offline
                            Astricks
                            wrote on last edited by
                            #13

                            thanks! :)

                            *

                            1 Reply Last reply
                            0
                            • P prasad_som

                              You are accessing declared array with invalid index. int A[5][5]; should be accessed only from A[0][0] to A[4][4] where as you are accessing it through A[1][1] to A[5][5]

                              Astricks wrote:

                              for (i = 1;i<=5;i++) {

                              You should modify this to,

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

                              at all places you have done mistake.

                              Prasad Notifier using ATL | Operator new[],delete[][^]

                              A Offline
                              A Offline
                              Astricks
                              wrote on last edited by
                              #14

                              thanks !

                              *

                              1 Reply Last reply
                              0
                              • E Eytukan

                                int A[5][5];int A[6][6];


                                Code-Frog:So if this is Pumpkinhead. Time for him to run and hide. It's an interesting thought really.

                                A Offline
                                A Offline
                                Astricks
                                wrote on last edited by
                                #15

                                Thanks :(

                                *

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups