Hallo,
ich habe folgendes Problem:
ich habe eine Funktion, diese soll einzelne Werte aus einer Datei nacheinander einlesen und weiter verarbeiten.
Wenn die Anzahl der eingelesener Werte größer als die Variable N ist, so sollen alle zuvor eingelesene Werte um eine stelle nach links verschoben werden, ( d.h. der erste gespeicherte Wert wird durch zweiten ersetzt, der zweite durch dritten usw…)
Hier ist ein ausschnitt aus meiner Funktion, leider funktioniert das ganze nicht richtig, vielleicht findet einer von euch den Fehler:
Meine Frage bezieht sich speziell auf das umspeichern der Werte!
double einlesen(double* ungefiltert, char* filname_1, char* filename_2, S_dig_filt* o_dig_filt,double gefiltert)
{
int anzahl = 0;
int h_wert = 0;
int help = 0;
int m=0;
int N = o_dig_filt -> N;
double* K = o_dig_filt -> K;
char hilf[80];
double* produkt=0;
double prod_sum = 0;
double koef_sum = 0;
int z=1;
int fop=0;
double *un = 0;
int anz = 0;
int anl = 1;
FILE *fi;
fi=fopen (filname_1, „r“);
ungefiltert=(double*)malloc(31*sizeof(double));
un=(double*)malloc(31*sizeof(double));
while (fgets(hilf, 80, fi) != NULL)
{
ungefiltert[anzahl]=(double)atoi(hilf);
if(anzahl > N)
{
anz=0, anl=1;
for(anz=0, anl=1; anl