0

我正在尝试将内存引用传递给字符串中的字符,并使用 C 在函数中对其进行编辑。代码如下:

void EditChar(char *input) {
printf("# %s #",*input);
*input = *input << 1
    }

int main() {
char *string ="aaaa";
EditChar(&string[2]);
printf("%s",string);
}

我可以很好地打印函数内的字符,我认为它一定意味着它跟随指针,那么为什么我无法编辑该字符的指针位置,有什么想法吗?

4

1 回答 1

0

缺少一个;第 3 行将导致问题开始。

您在第 2 行传递一个字符而不是字符指针。

在我的 Mac 上,一旦你解决了这些问题,你会在第 3 行遇到总线错误,因为你试图更改只读内存。

字符 *string =strdup("aaaa");

现在它可以工作了。

此外,如问题评论中所述,您可能希望使用

字符字符串 [] = "aaaa";

于 2012-12-09T03:41:02.997 回答