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)
似乎没有完成工作.
当您尝试打印出char时,需要取消引用指针
for (i = 0; i < 5; i++) {
printf("%c", *(array1 + i));
}
Run Code Online (Sandbox Code Playgroud)