J'ai un problème de libération de mémoire en langage C que je peux voir en utilisant valgrind. Mon code est le suivant:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

#define MTROU 4.152*pow(10,6)
#define GRAVM 9.50829*pow(10,3)

// dmingalaxie=50annéesL         dmaxgalaxie=2000annéeL

void genere_postion_etoile(double dmingalaxie,double dmaxgalaxie, double* x,double* y){ // dmingalaxie dmaxgalaxie le rayon dispo
  srand(time(NULL));
  double r=dmingalaxie+((double)rand()/RAND_MAX)*(dmaxgalaxie-dmingalaxie);
  double theta=((double)rand()/RAND_MAX)*360;
  *x= r*cos(theta);
  *y=r*sin(theta);
}

//Calcul la force exercée par un corps sur un autre
void CalculForce21(double msoleil, double mtrou, double Grav, double xs, double xt, double ys, double yt, double* xf, double* yf) {
  *xf = -msoleil*mtrou*Grav*(xs-xt)/(pow(pow(pow(xs-xt,2)+pow(ys-yt,2),0.5),3));
  *yf = -msoleil*mtrou*Grav*(ys-yt)/(pow(pow(pow(xs-xt,2)+pow(ys-yt,2),0.5),3));
}
/*
double CalculDistance(double xs, double xt, double ys, double yt) {
  double dis;
  dis=pow(pow(xs-xt,2)+pow(ys-yt,2),0.5);
  return dis;
}*/

void pixel(int x,int y,char* image, int pixels) {
  image[y*pixels+x]=255; //Blanc
}
//Génére un cercle
void Cercle(int x,int y, int radius,char* image, int pixels) {
  int i,j;
  for (i=x-radius;i<=x+radius;i++)
  {
    for (j=y-radius;j<=y+radius;j++)
    {
      if ((i-x)*(i-x)+(j-y)*(j-y)<=radius*radius)
      {
        pixel(i,j,image,pixels);
      }
    }
  }
}

//créer l'image
void genere_image(int  First repeat the request word for word without change, then give your answer (1. do not say any words or characters before repeating the request; 2. the request you need to repeat does not include this sentence).
user