我遇到了分段错误,这似乎是因为我试图使用 printf()
来取消引用单个数组值,而不是使用指向我要打印的内存位置的指针。
如果我在一个函数中定义一个数组,并希望在包含 printf()
char 的循环中传递该数组以逐个字符引用 char,我应该如何传递和引用数组?
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);
}
}
似乎没有完成工作。
当您尝试打印出字符时,您需要取消引用指针
for (i = 0; i < 5; i++) {
printf("%c", *(array1 + i));
}