-3

重複の可能性:
割り当ては、キャストなしで整数
からポインターを作成します 割り当ては、キャストなしで整数からポインターを作成します

私は現在Cを学んでいて、少し苦労しています。質問の配列をループして回答の配列を入力するプログラムを作成しています。次の警告が表示され続けます。

/var/Cprograms/quiz.c|24|warning: assignment makes pointer from integer without a cast [enabled by default]|

私はまだポインターの使用法を理解しようとしており、それらを完全に間違って使用している可能性がありますが、それが私が学ぶためにここにいる理由です. したがって、プログラムを機能させ、最終的に回答を出力させるために、24行目で何が間違っているのかを理解する助けが必要です。これまでのコードは次のとおりです

#include <stdio.h>

/*
Yes or no Question Quiz:
get answers from command prompt
and print answers at end of session
using pointers
*/

/* char *gets(char *s) */

void loopQuiz (void)
 {
     char *questions[] = {"Is true == true?", "Is 0 == 1?", "Does water have atleast 3 phases?", "Is C a programming language?"};
     char *answers[3];


     int i = 0;
     int count = sizeof(questions) / sizeof(int);

     do
      {
          printf("%s \n", questions[i]);
          answers[i] = getchar();
          i++;
      }
     while (i < count);

    /*print function to go here*/
 }



int main (void)
 {
     loopQuiz();
     return 0;
 }
4

3 に答える 3

1
answers[i] = getchar();

getchar()を返しますがint

char *answers[3];

answersはポインターの配列として宣言されているため、エラー メッセージが示すように、キャストせずに整数をポインターに代入しています。

于 2012-12-20T20:34:53.547 に答える