如何在C中为char *赋值?

时间:2014-11-21 15:33:29

标签: c char assign

此代码不起作用。

char* randomWordHidden[length];
char try;

printf("Enter a letter: ");
scanf(" %c", &try);

//here there is a loop    
  randomWordHidden[i] = try; //assign position of randomWordHidden with try value

它给出了错误:[Warning]赋值使得整数指针没有强制转换

但我这样做并且有效:

randomWordHidden[i] = "H";

如何为randomWordHidden的值分配try var?

的值

3 个答案:

答案 0 :(得分:4)

好;

您已将指针的列表(长度为length)设置为字符。我想你想要的是:

char randomWordHidden[length];

应为length个字符。

答案 1 :(得分:1)

您的randomWordHidden不是char的数组,而是char*的数组,因此实际上是一个字符串数组。这就是为什么分配char会给您一个警告,因为您无法执行char* = char。但是"H"的分配有效,因为它是 NOT a char - 它是一个字符串(const char*),由字母{{1}组成然后终止字符'H'。这是'\0' - char,这是字符串('H'数组) - char

您很可能需要将"H"数组的声明更改为randomWordHidden而不是char

答案 2 :(得分:0)

我相信数组已经是指针,不需要那个声明。

char randomWordHidden [length];

试一试?