我试图引用一个函数内部的char数组的char指针:
void getword(char *word)
{
*word = "bar";
}
int main()
{
char defword[4] = "foo";
getword(defword);
printf("%s\n", defword);
return 0;
}
我希望得到“ bar”作为输出,但是我似乎得到了完全不相关的字符串“ 1oo”。
取消引用的类型char *
是char
-原始值类型。在这种情况下,*word
与相同word[0]
。
的类型"bar"
是const char *
-指针类型。
您正在将指针的值分配给字符。我怀疑您的编译器是否会发生这种情况而不会without叫。
无论如何,请查看strcpy
。撇开所有可怕的不安全因素,这将更好地工作:
strcpy(word, "bar");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句