Dinamik olarak bağlanabilir kitaplık denemeleri, aynı zamanda ilk C projem.
make
make run
enum kedi_cinsi
{
TEKIR,
SIYAM,
DIGER
};Kedi cinsini belirler.
typedef struct kedi
{
char* ad;
int yas;
enum kedi_cinsi cins;
} kedi;- ad: Kedinin adını belirtir.
- yas: Yıl biçiminden kedinin yaşını belirtir.
- cins: Kedinin cinsini belirtir.
kedi* yeni_kedi (char* kedi_adi, int yas, enum kedi_cinsi cins)
{
kedi *i = malloc(sizeof(kedi));
i->ad = strdup (kedi_adi);
i->yas = yas;
i->cins = cins;
return i;
}Bellek yığınında yeni bir kedi oluşturur ve kedinin adresini dönderir.
void kedi_bilgi (kedi *k)
{
printf ("Adı: %s\n", k->ad);
printf ("Yaşı: %d\n", k->yas);
printf ("Cinsi: %s\n", kedi_cins_bul(k));
}Verilen kedinin kimliğini stdout'a yazdırır.
char* kedi_cins_bul (kedi *k)
{
switch (k->cins)
{
case TEKIR:
return "tekir";
case SIYAM:
return "siyam";
default:
return "diğer";
}
}Kedinin cinsini enum'dan char*'a çevirir.
void rahat_birak (kedi *k)
{
free (k->ad);
free (k);
}Verilen kediyi bellek yığınından temizler. Bunu yapmayı unutmak bellek sızıntılarına yol açabilir.