#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 20
struct Plik {
char * sciezka;
char * typ;
int dlugosc;
char * wykonawca;
char * tytul;
char * gatunek;
};
void wyszukaj(int typ, char typ_szczegolowy, struct Plik * w_plik[])
{
int ile = 0;
struct Plik * wyszukane;
struct Plik * kopia;
switch(typ){
case 0: // typ (MP3, WAV, OGG, itp.)
for(int i=0; i<MAX; i++)
{
char * txt;
strcpy(txt, w_plik[i]->typ);
if(strcmp(txt, typ_szczegolowy) == 0)
{
kopia = malloc(sizeof(struct Plik));
kopia = w_plik[i];
wyszukane = kopia;
ile++;
}
}
break;
}
for(int i=0; i<ile; i++)
{
printf("%d. %s %s\n", i, wyszukane[i].typ, wyszukane[i].tytul);
}
}
int main() {
struct Plik pliki[5];
pliki[0].sciezka = "d:/fsdfsd/costam.mp3";
pliki[0].typ = "MP3";
pliki[0].dlugosc = 434;
pliki[0].tytul="csoa";
pliki[1].sciezka = "d:/fsdfsd/cosfdsfdam.mp3";
pliki[1].typ = "MP3";
pliki[1].dlugosc = 434;
pliki[1].tytul="csfgdoa";
pliki[2].sciezka = "d:/fsdfsd/cosfdsfdam.mp3";
pliki[2].typ = "WAV";
pliki[2].dlugosc = 34;
pliki[2].tytul="fsdfsdfsd";
wyszukaj(0, "MP3", pliki);
return EXIT_SUCCESS;
}
Nie rozumiem jeszcze o co chodzi w dynamicznej alokacji pamięci.
Program się kompiluje ale wywala.