【发布时间】:2016-05-11 19:48:04
【问题描述】:
我有这两个数组,代码块没有给我任何构建错误,但是每当我运行它时,它都会给出“分段错误”并关闭程序我已经调试过它并发现我无法更改值以这种方式从 names1 更改 names2 效果很好,有没有办法让它工作?如果是,我如何让 troca 为 names1 工作?
void troca(char* frase){
unsigned i=0;
while(*(frase+i)!='\0') {
if(*(frase+i)=='O') {
*(frase+i)='0';
}
i++;
}
}
int main(){
char *names1[]={"JOAO","MANUEL","ROBERTO","ZE"};
char names2[][51]={"JOAO","MANUEL","ROBERTO","ZE"};
unsigned i;
for(i=0;i<4;i++) {
troca(names2[i]);
}
return 0;
}
【问题讨论】:
-
google 字符串文字
-
这里不相关,但我在某处读到指向相同字符串文字的两个变量可能共享相同的内存。改变一个也可能改变另一个..
-
请将实际代码发布为Minimal, Complete, and Verifiable example。显然这不是你的代码——如果它不能编译它就不能产生段错误。
标签: c arrays string pointers char