将数组的指针传递给要在C中的printf`中使用的函数

z.r*_*ubi 0 c memory arrays segmentation-fault

我遇到了分段错误的麻烦,似乎是我试图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);
  }
}
Run Code Online (Sandbox Code Playgroud)

似乎没有完成工作.

Ste*_*ocy 5

当您尝试打印出char时,需要取消引用指针

for (i = 0; i < 5; i++) {
    printf("%c", *(array1 + i));
}
Run Code Online (Sandbox Code Playgroud)