This commit is contained in:
2026-02-13 16:12:39 +01:00
parent 40e2167003
commit b646f5ca78
16 changed files with 984 additions and 33 deletions
+68
View File
@@ -0,0 +1,68 @@
#include "animals.h"
#include <stdlib.h>
#include <string.h>
#include <strings.h>
struct fish *fish_init(const char *species, int speed, size_t size, int fresh_water){
//je sens que la mouli vas tester ça grr
if(species == NULL) return NULL;
struct fish *fish = malloc(sizeof(struct fish));
if (fish == NULL) return NULL;
int index = 0;
while (*(species + index) != '\0') index ++;
fish->species = malloc((index + 1 ) * sizeof(char *));
if (fish->species == NULL){
free(fish);
return NULL;
}
strcpy(fish->species, species);
fish->lives_in_fresh_water = fresh_water;
fish->size = size;
fish->swimming_speed = speed;
return fish;
}
struct animal *animal_from_fish(const char *color, struct fish *fish){
if (color == NULL || fish == NULL) return NULL;
struct animal *animal = malloc(sizeof(struct animal));
if(animal == NULL)return NULL;
int index = 0;
while(*(color + index) != '\0') index ++;
animal->color = malloc((index + 1) * sizeof(char*));
if(animal->color == NULL) {
//free(animal->color);
free(animal);
return NULL;
}
strcpy(animal->color, color);
animal->type = 1;
/*
union animals *animals = malloc(sizeof(union animals));
if(animals == NULL){
free(animal->color);
free(animal);
return NULL;
}*/
//animals->fish = fish;
animal->animal.fish = fish;
return animal;
}
void free_fish(struct fish *fish){
if(fish == NULL) return;
if(fish->species != NULL) free(fish->species);
free(fish);
}