C-分割故障(核心倾倒)发生时,我会更改字符串



我正在尝试在C中构建一个函数,该函数将字符串的字符'f'和/或" o"更改为'x'。由于某种原因,我在运行程序时仍会遇到细分故障(核心倾倒(,即使它毫无问题地编译了该程序。我知道,当程序试图访问内存中无法访问的位置时,会发生细分故障,但是,我看不出代码中可能导致此问题的内容。这是我的代码:

#include <stdio.h>
void censor(char p[]);
int main(){

    censor("foodfool");
    return 0;
}
void censor(char p[]){
    int i;
    for(i = 0;p[i] != '';i++){
        if(p[i] == 'f' || p[i] == 'o')
            p[i] = 'x';
        printf("%c", p[i]);     
    }
    printf("n");
}

字符串"foodfool"是一个编译时常数,您无法修改。用char阵列(char[](或堆分配的char指针(char*(。

相关内容

  • 没有找到相关文章

最新更新