我正在尝试将一个char指针引用到函数内的char数组:
void getword(char *word)
{
*word = "bar";
}
int main()
{
char defword[4] = "foo";
getword(defword);
printf("%s\n", defword);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我希望得到"bar"作为输出,但我似乎得到完全无关的字符串'1oo'.
解除引用的类型char *是char- 原始值类型.在这种情况下,*word是一样的word[0].
类型"bar"是const char *- 指针类型.
您正在指定指向字符的指针的值.我怀疑你的编译器是否会在没有大声喧哗的情况下发生这种情况.
无论如何,请研究一下strcpy.撇开这一切的可怕不安全,这将更好地工作:
strcpy(word, "bar");
Run Code Online (Sandbox Code Playgroud)