non riesco a capire a cosa si riferisce questo errore

codice:
#include <stdio.h>
#include <math.h>
#include <string.h>

struct puntonelpiano{
  float x;
  float y;
}
;

struct cerchio{
  struct puntonelpiano posizione_centro;
  float raggio;
}
;

void centro_cerchio(struct cerchio vett[],int n,float xa,float ya){
  int i,j=0;
  float dist,max=0.0,xf=0.0,yf=0.0;
  for (i=0;i<n;i++){
    // questo ciclo scandisce tutti i punti e calcola la distanza dal punto desiderato al centro di ogni cerchio
    dist=sqrt(pow(vett[i].posizione_centro.x-xa,2))+(pow(vett[i].posizione_centro.y-ya,2));
    // qui vede se la distanza è minore del raggio del cerchio, così da vedere se il punto è dentro il cerchio
    if(dist<=vett[i].raggio){
    // max è una variabile che tiene salvato la minima distanza tra il punto ed il centro più vicino
      if(dist<max){
      // se la distanza è minore del min precedente vuol dire che questo centro è candidato ad essere il risultato
      // quindi mi tengo a mente i suoi valori
        max=dist;
        j=i; vett[i].posizione_centro.x=xf; vett[i].posizione_centro.y=yf;
      }
      printf("Distanza dal %d centro=%f max=%f",i,dist,max);
    }
  }
  printf("(%f,%f)",xf,yf);
}
;

int main(){
  int n,i;
  float x,y;
  printf("Inserisci i punti nel vettore:");
  scanf("%d",&n);
  struct cerchio vett[n];
  for(i=0;i<n;i++){
    printf("inserisci le coordinate del centro del cerchio %d:",i+1);
    scanf("%f;%f",&vett[i].posizione_centro.x,&vett[i].posizione_centro.y);  
    printf("inserisci il raggio del cerchio %d:",i);
    scanf("%f",&vett[i].raggio);
  }
  printf("\n\nInserimenti\n");
  for(i=0;i<n;i++){
    printf("Punto n%d x=%f y=%f raggio=%f\n",
    i,vett[i].posizione_centro.x,vett[i].posizione_centro.y,vett[i].raggio);
  }
  printf("\nInserisci il punto da valutare:");
  scanf("%f;%f",x,y);
  
  centro_cerchio(vett,n,x,y);
  return 0;
}
l'errore che mi viene dato è:

error while dumping state (probabily corrupted stack) segmentation fault (core dumped)