Ora neache a me dà errori, avevo dimenticato il prototipo della funzione.
ho fatto questi 2 esperimenti che mi sembrano significativi.
Creo una struttura interna a una funzione, nel primo caso con struct e nel secondo caso con malloc e poi la fnx ritorna un puntatore.
Nel primo caso richiamando la funzione piu volte ottengo sempre lo stesso indirizzo. Con la malloc ogni volta restituisce indirizzi diversi.
Ho anche provato a restituire array per valore, ma non ho avuto successo :bubu:

codice1
codice:
#include <stdio.h>

struct a{
 int val1;
 int val2;
};

struct a *funx01(){
  struct a struttura;
  struttura.val1 = 12;
  return &struttura;
}


int main()
{
  printf("%d\n", funx01());
  printf("%d", funx01());

  getch();
  return 0;
}
codice2

codice:
#include <stdio.h>

struct a{
 int val1;
 int val2;
};

struct a *funx01(){
  struct a* p = (struct a*) malloc(sizeof(struct a));
  p->val1 = 12;

  return p;
}


int main()
{
  printf("%d\n", funx01());
  printf("%d", funx01());

  getch();
  return 0;
}