Risolto
#include <stdio.h>
#include <stdbool.h>
bool isDispari(int *a, int i){
		return (a[i]%2)==1;
}
int sommaDisp(int *a, int n){
	int i,sD=0;
	for(i=0;i<n;i++)
		if(isDispari(a,i))
			sD+=a[i];
	return sD;
}
	
int main(){
	int n,i;
	printf("Inserisci lunghezza array");
	scanf("%d",&n);
	int a[n];
		for(i=0;i<n;i++){
		printf("Inserisci elemento %d dell'array\n",i);
		scanf("%d",&a[i]);
	}
	printf("La somma degli elementi dispari e' %d",sommaDisp(a,n));
	return 0;
}
Potevi dirlo fin dall'inizio che le funzioni non andavano bene, ho messo tutto il codice nel testo della domanda per un motivo... comunque adesso funziona, grazie