如何修改字符指针

时间:2014-10-31 20:11:11

标签: c pointers

我现在一直在搞乱指针和malloc,当我尝试这样做时,我的编译器告诉我str [0] ='a'有一个EXC_BAD_ACCESS。我在这个简单程序中的目标是创建一个包含字符的指针,然后开始将所有字母设为小写。但看起来我甚至无法修改指针所指向的内容。非常感谢任何和所有帮助。

main(){

char *str = malloc(sizeof(char)*10);

if(str == NULL){
    printf("Error");
}

str = "AsDf";

str[0] = 'a';

printf("%s", str);

return 0;


}

2 个答案:

答案 0 :(得分:2)

使用

strncpy(str, 10, "AsDf");

而不是

str = "AsDf";

答案 1 :(得分:0)

str = "AsDf";

此处此行将str分配给字符串文字。字符串文字是不可变的;他们无法改变。您必须像这样初始化它以使您的代码工作:

str = {'A', 's', 'D', 'f', '\0'};