将int传递给scanf()时,C中的分段错误?

时间:2018-07-20 13:27:15

标签: c

请帮助我调试程序

#include<stdio.h>

int main ()
{

   int n = 1,t;

    printf("How many Peanut Butter sandwiches do you want?");

        scanf("%d", t);

   while( n <= t )
   {

      printf("Making Sandwhitch no. %d\n", n);
      n++;

   }

   return 0;
}

每次提交时,都会显示分段错误(核心已转储)。 该怎么办?

2 个答案:

答案 0 :(得分:1)

scanf()将指针作为参数,因此要在此处与t一起使用,必须以这种方式使用scanf()scanf("%d", &t);

有关指针的更多信息,请参见此:Pointers in c

答案 1 :(得分:0)

scanf使用可变地址。所以像下面这样传递参数地址:

scanf("%d", &t);

&t指向t地址。