Передать указатель массива в функцию для использования в printf` в C - PullRequest
0 голосов
/ 30 апреля 2018

У меня проблема с ошибкой сегментации, и, похоже, она исходит от меня, пытающегося использовать printf() для разыменования одного значения массива вместо использования указателя на область памяти, которую я хочу напечатать.

Если я определяю массив в одной функции и хочу передать этот массив для ссылки на char через char в цикле, содержащем printf(), как мне передать и ссылаться на массив?

void arrayFunc(){

  char array [5];
  array[0] = 'a';
  array[1] = 'b';
  array[2] = 'c';
  array[3] = 'd';
  array[4] = 'e';

  printArray(array);
}

void printArray(char* array1){
  int i;
  for(i = 0; i < 5; i++){
        printf("%c", array1 + i);
  }
}

Кажется, работа не выполнена.

1 Ответ

0 голосов
/ 30 апреля 2018

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

for (i = 0; i < 5; i++) {
    printf("%c", *(array1 + i));
}
...