2014-11-21 2 views
0

Этот код не работает.Как назначить char char * в C?

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?

ответ

1

Ваш randomWordHidden не является массивом char, но массив char*, поэтому эффективно массив строк. Вот почему присвоение char дает вам предупреждение, потому что вы не можете сделать char* = char. Но назначение "H" работает, потому что оно NOT a char - это строка (const char*), которая состоит из буквы 'H' с последующим символом окончания '\0'. Это char - 'H', это строка (char массив) - "H".

Вам, скорее всего, необходимо изменить объявление массива randomWordHidden на char вместо char*.

0

Я считаю, что массивы уже указатели, не требуется эта декларация.

char randomWordHidden [длина];

Дайте это попробовать?

4

Ну;

Вы сделали список (длиной length) указатели персонажам. Я предполагаю, что вы хотите:

char randomWordHidden[length]; 

, которые должны быть length символов.

Смежные вопросы