我现在一直在搞乱指针和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;
}
答案 0 :(得分:2)
使用
strncpy(str, 10, "AsDf");
而不是
str = "AsDf";
答案 1 :(得分:0)
str = "AsDf";
此处此行将str
分配给字符串文字。字符串文字是不可变的;他们无法改变。您必须像这样初始化它以使您的代码工作:
str = {'A', 's', 'D', 'f', '\0'};