我正在尝试将内存引用传递给字符串中的字符,并使用C在函数中编辑它。代码如下:
void EditChar(char *input) {
printf("# %s #",*input);
*input = *input << 1
}
int main() {
char *string ="aaaa";
EditChar(&string[2]);
printf("%s",string);
}
我可以在函数内打印字符,我认为它必须意味着它跟在指针之后,为什么我无法编辑该字符的指针位置,任何想法?
答案 0 :(得分:0)
缺乏;第3行将引发问题。
你在第2行传递了一个字符而不是字符指针。
在我的Mac上,一旦你解决了这些问题,就会在第3行遇到总线错误,因为你正在尝试更改只读内存。
char * string = strdup(“aaaa”);
现在可行。
另外,正如问题评论中所述,您可能希望使用
而不是strdupchar string [] =“aaaa”;