Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ошибка Сегментирования C

65K
18 декабря 2010 года
Olavforever
1 / / 18.12.2010
Программа делит многочлен на многочлен над полем вычетов, компилируется и при запуске выдает ошибку сигментации, знаю что это, совершенно не могу понять, где.
Код:
#include <stdio.h>
#include <stdlib.h>
void del(int *a,int *b,int n,int k,int q){
  int *ap,*bp,*c;
  int i,t,j,x,l;
  ap=(int*)malloc((n+1)*sizeof(int));
  t=n+1;
  for (i= 0;i<=n;i++){
    ap=a;
  }
  if (t-1<k) { printf("0 \n");}
  else if (t-1>=k) {
    c=(int*)malloc((n-k+1)*sizeof(int));
    x=0;
    do{
      for (i= 0;i<=t-1;i++){
        if (ap<0) { ap=q+ap;}}
      for (i= 1;i<=q-1;i++){
        if (((b[0]*i) % q) == ap[0]) { l=i;}}
      bp=(int*)malloc((t)*sizeof(int));
      c[x]=l;
       for (i= 0;i<=k;i++){
        bp=(l*b) % q;}
      for (i= k+1;i<=t-1;i++){
        bp=0;}
     for (i= 0;i<=t-1;i++){
        bp=(ap-bp) % q;}
      i=0;
      do{
        i++;}
      while ((bp>0) || (bp<0) || (i==t));
    if (t-i>0){
      ap=(int*)malloc((t-i)*sizeof(int));}
      for (j= 0;j<=t-i-1;j++){
        ap[j]=0;}
      for (j= i;j<=t-1;j++){
        ap[j-i]=bp[j];}
      t=t-i;
      x++;}
    while ((t-1)<k);
  }
    if (t==0) { printf("1 \n");}
    else {printf("0 \n");}
}
int main(){
    int *a,*b;
    a=(int*)malloc(3*sizeof(int));
    b=(int*)malloc(2*sizeof(int));
    b[0]=1;
    b[1]=1;
    a[0]=1;
    a[1]=2;
    a[2]=1;
    int k;
    del(a,b,2,1,5);
}
297
18 декабря 2010 года
koodeer
1.2K / / 02.05.2009
Вопрос: для чего придумали отладчик?
Меньше минуты надо, чтобы определить место возникновения проблемы:
 
Код:
bp=(int*)malloc((t)*sizeof(int));

Где-то ошибка в алгоритме.
Поставьте перед проблемной строкой:
 
Код:
printf("%d ", t);
Станет понятно.

Кстати, нужно проверять, что вернула функция malloc.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог