non programmo in C da anni, quindi partiamo più o meno dallo stesso livello 
procediamo per step:
funzione che prende in input 1 array di char e la sua equivalente con puntatore (sono la stessa cosa)
Code:
// function 1
void dosomething(char cline[]) {
...
}
// function 2
void dosomething(char *cline) {
...
}
e si usano così
Code:
char line[100];
// function 1
dosomething(line);
// function 2
dosomething(&line[0])
Devi restituire due vettori: dato che non si possono restituire due variabili, o dichiari una struct che contiene due vettori (non è male come idea, ma è poco C-style) oppure passi come parametri i vettori in cui vuoi i risultati. Scegliamo la seconda opzione, più che altro perchè non ricordo come si lavora sulle struct lol
Code:
// function 2
void doCalc(int myNumber, int *firstVector, int *secondVector) {
...
}
e si userebbe così
Code:
int* result1, int* result2;
int myNumber = 71; // 69 + 2 dita nel culo
doCalc(myNumber, result1, result2);
Cosa fa la tua funzione non lo so, però so come salvare i risultati
Code:
// function 2
void doCalc(int myNumber, int *firstVector, int *secondVector) {
int firstVectorSize = 10;
int secondVectorSize = 23;
firstVector = (int *)malloc(sizeof(int) * firstVectorSize );
secondVector = (int *)malloc(sizeof(int) * secondVectorSize );
// fai i calcoli
// salva i risultati negli array, ad esempio così
// firstVector[0] = 0;
// firstVector[1] = 1;
// ...
// firstVector[firstVectorSize - 1] = firstVectorSize - 1;
return;
}
arrivato qui, non ho ben capito cosa devi fare, perchè al momento hai tutto quello che ti serve per fare le tue cose... se mi spieghi bene cosa deve fare la funzione, vediamo di continuare