2015-07-15 2 views
1

У меня возникли проблемы с использованием двойного массива. Следующий фрагмент коды не будет компилироваться, но я считаю, что это должно показать мой вопрос:Лучший способ доступа к двойным массивам

static uns8 level6[2][8] {    
    = {0, 0, 1, 2, 2, 3, 3, 0}, 
    {0, 1, 1, 2, 2, 3, 3, 0}}; 

int i, j;  /* Loop Index */ 
int level[8];      

for (i = 0; i < 2; i++) 
    for (j = 0; j < 8; j++) 
     if (TRUE) { 
      level[][] = level6[][]; 
     } 
     else { 
      level[i][] = level6[i][]; 
     } 
    } 
} 

Моим вопрос, является ли переменным верно, то я хочу использовать вторую часть двойного массива {0, 1, 1, 2, 2, 3, 3, 0} и иным образом использовать первый {0, 0, 1, 2, 2, 3, 3, 0}.

Теперь я зациклился на том, как на самом деле написать этот код. Любая помощь?

ответ

0

вместо

for (i = 0; i < 2; i++) 
for (j = 0; j < 8; j++) 
if (TRUE) { 
    level[][] = level6[][]; 
} 
else { 
    level[i][] = level6[i][]; 
} 

вы должны иметь

for (j = 0; j < 8; j++){ 
    if (TRUE) { 
     level[j] = level6[1][j]; 
    } 
    else { 
     level[j] = level6[0][j]; 
    } 
} 

, потому что вы только хотите, чтобы скопировать один из списков на уровень, так что вам нужно только петли по длине этого списка, поставив число, основанное на булевом.