Почему я получаю ошибку сегментации: 11? - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь выучить c, поэтому я пытался выяснить, почему у меня ошибка сегментации за последние 2 часа;На бумаге это выглядит так, как будто код должен работать.

Таким образом, цель процедуры - попросить пользователя ввести нужный ему размер в куче, а затем попросить его ввести цифры, но цифры должны бытьуникальный.

Пожалуйста, извините, если это код с плохим отступом, я все еще новичок

int size ; // The size to allocate
int input ; // the number the user will enter from keyboard
int count  = 0 ; // how many numbers have been added


printf ("Enter the number of integers to process: \n");
scanf ("%d" , &size) ;
int* t;
int* c= (int*)malloc (size* sizeof (int));

if ((t = c))
while (count<size)
{
  printf("Enter value #%d\n" , count+1) ;
  scanf ("%d" , &input) ;

  if (count != 0)
  while (t<= t+count-1)
  {

      if (*t == input)
      {
         printf ("You have entered %d already\n", input);
         printf("Enter value #%d\n" , count+1) ;
         scanf ("%d" , &input) ;
         t = c ;
      }
    else
     t++;
  }

  t = c ;
  c[count] = input ;
  sum += c[count] ;
  count ++ ;
}

1 Ответ

0 голосов
/ 02 марта 2019

Это должно быть while (t<= c+count-1) вместо while (t<= t+count-1) Последнее условие всегда верно.

...