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