Skocz do zawartości

Zwalnianie tablicy


KDsprinter16

Recommended Posts

int main() { float wsp[L_WSPOLCZ]; float xmin, xmax; int rozmiar = 0; float* sygnalPodstawowy = NULL; float* sygnalSzum = NULL; float* sygnalFiltrM = NULL; float* sygnalFiltrS = NULL; printf("----------MENU---------\n"); int menu = -1; while (menu != 0) { printf("Wybierz opcje:\n1. Generuj\n2. Zapisz\n3. Dosaj szum\n4.Filtruj szum\n0. Wyjdz\n"); scanf("%d", &menu); switch (menu) { case 1: { pobierzWspolczynniki(wsp); pobierzDziedzine(&xmin, &xmax); rozmiar = wielkoscTab(); if (sygnalPodstawowy != NULL) { free(sygnalPodstawowy); sygnalPodstawowy = NULL; } sygnalPodstawowy = (float*)malloc(rozmiar * sizeof(float)); sygnalSzum = (float*)malloc(rozmiar * sizeof(float)); sygnalFiltrM = (float*)malloc(rozmiar * sizeof(float)); sygnalFiltrS = (float*)malloc(rozmiar * sizeof(float)); if (sygnalPodstawowy == NULL || sygnalSzum == NULL || sygnalFiltrM == NULL || sygnalFiltrS == NULL) { perror("Blad alokacji pamieci"); return 1; } generujSygnal(wsp, xmin, xmax, sygnalPodstawowy, rozmiar); drukujSygnal(sygnalPodstawowy, rozmiar); printf("Wygenerowano sygnal\n"); break; } case 2: { if (sygnalSzum != NULL) { csv(rozmiar, sygnalSzum); printf("Zapisano sygnal zaszumiony \n"); } else if(sygnalSzum == NULL && sygnalPodstawowy!= NULL) { csv(rozmiar, sygnalPodstawowy); printf("zapisano sygnal podstawowy\n"); } else { printf("Brak sygnalu do zapisania. Najpierw wygeneruj sygnal.\n"); } break; } case 3: if (sygnalPodstawowy != NULL && sygnalSzum != NULL) { dodajSzum(wsp, xmin, xmax, sygnalPodstawowy, rozmiar, sygnalSzum); printf("dodano szum\n"); break; } else { perror("brak sygnalu do zaszumienia \n"); break; } case 4: //FILTR MEDIANA if (sygnalPodstawowy != NULL) { filtrMediana(sygnalSzum, sygnalFiltrM, wielkoscTab, 5); printf("odfiltrowano sygnal\n"); } else { perror("brak sygnaly do filtrowania\n "); } break; case 5 : { // FILTR SREDNIA if (sygnalPodstawowy != NULL) { filtrSrednia(sygnalSzum, sygnalFiltrS, rozmiar, 5); printf("odfiltrowano sygnal\n"); } else { perror("Brak sygnału do filtrowania\n"); } break; case 0: printf("Zakonczenie programu\n"); break; default: printf("Nieprawidlowa opcja!\n"); } } if (sygnalPodstawowy != NULL) { free(sygnalPodstawowy); } if (sygnalSzum != NULL) { free(sygnalSzum); } if (sygnalFiltrM != NULL) { free(sygnalFiltrM); if (sygnalFiltrS != NULL) { free(sygnalFiltrM); } return 0; }
 

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...