Thread: Overwriting all in array, why?

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User guesst's Avatar
    Join Date
    Feb 2008
    Location
    Lehi, UT
    Posts
    179

    Overwriting all in array, why?

    Bugging the life out of me. I'm searching through an array (board) looking for patterns that match what's in bends[][][][]
    Code:
    enum Direction bends[NUMBENDS][2][2][2] = {      /* [type][before/after][y][x]*/
    {{{ NONE, DOWN},{ NONE,  END}},{{ DOWN, LEFT},{RIGHT,  END}}},
    {{{ NONE, NONE},{  END, LEFT}},{{ DOWN, LEFT},{  END,   UP}}},
    {{{  END, NONE},{   UP, NONE}},{{  END, LEFT},{RIGHT,   UP}}},
    {{{RIGHT,  END},{ NONE, NONE}},{{ DOWN,  END},{RIGHT,   UP}}},
    {{{ NONE,  END},{ NONE,   UP}},{{RIGHT,  END},{   UP, LEFT}}},
    {{{ NONE, NONE},{RIGHT,  END}},{{RIGHT, DOWN},{   UP,  END}}},
    {{{ DOWN, NONE},{  END, NONE}},{{RIGHT, DOWN},{  END, LEFT}}},
    {{{  END, LEFT},{ NONE, NONE}},{{ END, DOWN},{   UP, LEFT}}}
    };
    
    ...skipping to the problem bit ...
    
        index = 0;
        for (xy = 0; xy < (MAX * MAX) - MAX; xy++) 
        {
          if ((xy + 1) &#37; MAX == 0) continue;
    
          for (c = 0; c < NUMBENDS; c++) 
          {
            if ((bends[c][0][0][0] != END) && (bends[c][0][0][0] != board[xy])) continue;
            if ((bends[c][0][0][1] != END) && (bends[c][0][0][1] != board[xy + 1])) continue;
            if ((bends[c][0][1][0] != END) && (bends[c][0][1][0] != board[xy + MAX])) continue;
            if ((bends[c][0][1][1] != END) && (bends[c][0][1][1] != board[xy + MAX + 1])) continue;
    
            mods[index][0] = xy; mods[index][1] = c; index++;
    for (d = 0; d < index; d++) mvprintw(debug++,40,"InBends%d:%d,%d",d,mods[d][0],mods[d][1]);refresh(); /*debug output*/
          }
        }
    I added a debugging loop there to output the array as it find it, and I'm getting some odd output. I'd expect it to show me a building array, but instead I get something like:
    Code:
    InBends0:27,4
    InBends0:29,6
    InBends1:29,6
    InBends0:37,7
    InBends1:37,7
    InBends2:37,7
    See how every time the array builds all previous entries are overwritten by the last one. Why? The loops and conditionals all look good to me. The problem is definately within those bracket, but I can't, for the life of me, figure out where.
    Last edited by guesst; 10-08-2008 at 03:50 PM.
    Type-ins are back! Visit Cymon's Games at http://www.cymonsgames.com for a new game every week!

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Replies: 16
    Last Post: 05-29-2009, 07:25 PM
  2. from 2D array to 1D array
    By cfdprogrammer in forum C Programming
    Replies: 17
    Last Post: 03-24-2009, 10:33 AM
  3. Replies: 6
    Last Post: 11-09-2006, 03:28 AM
  4. Unknown Memory Leak in Init() Function
    By CodeHacker in forum Windows Programming
    Replies: 3
    Last Post: 07-09-2004, 09:54 AM
  5. Quick question about SIGSEGV
    By Cikotic in forum C Programming
    Replies: 30
    Last Post: 07-01-2004, 07:48 PM