Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2010, 14:44   #1
agronomchek
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 19
По умолчанию Работа с указателями. Ошибка сегментации.

Всем доброго времени суток. Сразу скажу, что Си я только начал изучать. Изучаю по книге В.В. Подбельского.
Не могу понять, где именно у меня происходит эта ошибка. Сразу после вывода на экран сообщения "Array of value fx" Windows выдает ошибку и аварийно завершает программу.
Код:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define n 5
#define m 4


float func1(float x,float t)
{
	float p=0;
	float fac=1,i;
	for (i=1;i<=t;i++)
	{
		fac*=i;
		p+=pow(x,i+1)/fac;
	}
	return p;
}


float func2(float x, float t)
{
	float p=0;
	int i;
	for (i=1;i<=t;i++)
	p+=exp(i*x)-sin(x);
	return p;
}


float* func(float* mas,int k, int t, int w, int* max)
{
       float p;
       int i;
       float *y=malloc(k*sizeof(float));
       if (!y) {printf("Require more memory!"); exit(1);}
       for (i=1;i<=k;i++) y[i-1]=func1(mas[i],t)+func2(mas[i],w);
       p=0;
       for (i=1;i<=k;i++)
       if (y[i-1]> p) p=y[i-1];
       for (i=1;i<=k;i++)
       if (p==y[i-1]) *max=i-1;
       return y;
}


int main(void)
{
     float* x;
	 int l,k,i;
     float* fx;
     int*maxpoint;
     printf("\nk="); scanf("%d",&k);
     x=(float*)malloc(k*sizeof(float));
     if (!x) {printf("Require more memory!");
     exit(1);}
     printf("\nPlease enter %d arguments x\n",k);
     for (i=1;i<=k;i++) 
     {
         printf("\nx%d=",i); 
         scanf("%f",(x+i-1));
     }
     printf("\nArray of value fx");
         fx=func(x,k,n,m,maxpoint);
	 for (i=1;i<=k;i++)
	 printf("\n y%d %f",i-1,fx[i-1]);
	 printf("\nNumber of max arrays's element %d",*maxpoint);
	 return 0;
	 system("pause");
}
Заранее спасибо откликнувшимся.
agronomchek вне форума Ответить с цитированием
Старый 24.08.2010, 14:51   #2
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Для maxpoint нигде не выделяется память
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с указателями. Alex Cones Общие вопросы Delphi 8 06.07.2010 18:34
Работа с указателями (C) pixel_ Помощь студентам 1 28.08.2009 14:07
Ошибка сегментации при вызове system("PAUSE") Lavisa Общие вопросы C/C++ 9 01.08.2009 18:14
Ошибка сегментации при вызове system("PAUSE") Lavisa Помощь студентам 0 29.07.2009 17:43
Работа с указателями!!! HKBD Общие вопросы C/C++ 1 06.10.2008 07:52