Imam pitanje u vezi sledećeg koda:
Kod:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct el
{
int kljuc;
char vrednost[10];
struct el *sledeci;
}Elem;
Elem *lista=NULL;
void Dodaj(Elem *e, int k, char *v)
{
Elem *novi=(Elem*)malloc(sizeof(Elem));
novi->kljuc=k;
strcpy(novi->vrednost, v);
novi->sledeci=lista;
lista=novi;
}
void Pronadji(Elem *e, int k)
{
if(e==NULL)
{
printf("Ne postoji element sa kljucem %d.\n", k);
return;
}
else if(k==e->kljuc)
{
printf("Vrednost sa kljucem %d je: %s\n", k, e->vrednost);
return;
}
else
Pronadji(e->sledeci, k);
}
void Odstampaj(Elem *e)
{
if(e==NULL)
{
printf("---Kraj liste---\n");
return;
}
printf("%d %s\n", e->kljuc, e->vrednost);
Odstampaj(e->sledeci);
}
void OslobodiMemoriju(Elem *e)
{
if(e==NULL)
return;
Elem *n=e->sledeci;
free(e);
OslobodiMemoriju(n);
}
int main()
{
Dodaj(lista, 3, "tri");
Dodaj(lista, 2, "dva");
Dodaj(lista, 6, "sest");
Dodaj(lista, 4, "cetiri");
Odstampaj(lista);
Pronadji(lista, 6);
Pronadji(lista, 12);
OslobodiMemoriju(lista);
return 0;
}
Pošto se prvi argument funkcije 'Dodaj' ne koristi, da li ta funkcija može bez tog argumenta, tj. da ima samo druga dva argumenta? Ispitao sam i to, i program daje isti rezultat (sa već adtim podacima u 'main' funkciji), pa mislim da je odgovor potvrdan. Da li sam nešto prevideo?