Grazie della risposta!
Ho provato a fare così ma ancora non riesco a risolvere, posto il codice.
Questo è il file "main.c"
codice:
#include "funzione.c"
#include <stdio.h>
unsigned dati_comuni[]={2,5,7,1,65,34,8,10};
int main(void)
{
ordina_dati();
for (int i=0; i<sizeof(dati_comuni)/sizeof(dati_comuni[0]); i++) {
printf("elemento %d vale %d\n",i,dati_comuni[i]);
}
return 0;
}
Questo invece è il file che ho chiamato "funzione.c". Il compilatore mi segnala errore quando provo a calcolarmi la lunghezza dell'array tramite operatore sizeof. Come posso fare per sapere la lunghezza di un array che è stato dichiarato in un altro file??
codice:
#include <stdio.h>
#include <string.h>
void ordina_dati(void){
int i,j,min,temp,len;
extern unsigned int dati_comuni[];
len=sizeof(dati_comuni)/sizeof(dati_comuni[0]);
for(i=0; i<len-1; i++)
{
min = i;
for(j=i+1; j<len; j++)
if(dati_comuni[j] < dati_comuni[min])
min = j;
temp=dati_comuni[min];
dati_comuni[min]=dati_comuni[i];
dati_comuni[i]=temp;
}
}