Semplificando di molto il concetto che voglio esprimere...

codice:
#include <stdio.h>
#include <stdlib.h>

#define SIZE

int *allocFunc (void){
	
	int *data = NULL;
	
	data = (int*) malloc( sizeof(int) * SIZE);
	
	return data;
}

int main(){
	
	int *mydata;
	
	mydata = allocFunc();
	
	............
		
	free(mydata);
	
	return 0;
}
in questo caso devo utilizzare free per deallocare il puntatore data all'interno della funzione allocFunc? Mi verrebbe da dire di no visto che il puntatore muore quando esco dalla funzione... o mi sbaglio?