У меня есть массив char
s, и он инициализируется с помощью вложенного цикла for
.2d char array и char pointer
Как получить доступ к каждому элементу массива, например a[i][j]
, с помощью указателя char
?
Я пробовал * (* (p+i)+j)
, что дает мне унальную ошибку. Я также попытался следующие:
char a[maxr][maxc];
char *p = 0;
p = &a[0][0];
int i,j;
for (i = 0; i < r-1; i++){
for (j = 0; j < c-2; j++){
while (*p != '\0'){
*p = 'Y';
p++;
}
}
}
Если я сделать:
char a[maxr][maxc];
char *p = 0;
p = &a[0][0];
int i,j;
for (i = 0; i < r-1; i++){
p = p+i;
for (j = 0; j < c-2; j++){
p = p+j;
while (*p != '\0'){
*p = 'Y';
p++;
}
}
}
Это, кажется, траверс массива; однако я не совсем уверен, что это правильный способ сделать это.
Не зная тип 'a' это невозможно ответить точно. Массив массивов против массива указателей будет иметь разные ответы. Обновите вопрос, чтобы включить объявление 'a', пожалуйста. – WhozCraig
Возможный дубликат [Указание на массив] (http://stackoverflow.com/questions/7613584/pointing-at-array) –
@WhozCraig 'a' есть ... Уценка не удалась, но я ее исправил. – unwind