디시 들여쓰기 병신으로 만들어버려서 차마 전체소스는 못올려주겠고 (필요하면 올려줄게)
일단 오류구문


        if(canPass[mapPos[act[i].pos.x+(act[i].pos.x<act[i].targetPos.x)-(act[i].pos.x>act[i].targetPos.x),act[i].pos.y]]){
                act[i].pos.x+=(act[i].pos.x<act[i].targetPos.x)-(act[i].pos.x>act[i].targetPos.x);
        }


오류는 저 조건문에서 나고있어

error C2107: 인덱스가 잘못되어 간접 참조를 사용할 수 없습니다.

그리고 변수 선언한 구간들은


        //게임관련 변수 초기화
        for(i=0;i<MapWidth;i++)for(j=0;j<MapWidth;j++)
                mapPos[i][j]=random(6);

        //블록 통행여부
        canPass[0]=1;
        canPass[1]=1;
        canPass[2]=1;
        canPass[3]=1;
        canPass[4]=1;
        canPass[5]=1;
        canPass[6]=0;


MapWidth는 define으로 500으로 해뒀음


그리고 Object 구조체 act 속성은 


typedef struct Position{
        int x,y;
}Position;

typedef struct Sprite{
        SDL_Surface *res;
        int width,height,xoffset,yoffset;
}Sprite;

typedef struct Object{
        Sprite spr;
        Position pos,targetPos;
        int flag;
}Object;

이렇게 생긴 ㅎ

저 오류가 왜뜬걸까? (필요하면 전체소스 다 올릴게)