PDA

Visualizza la versione completa : [C]Vettori in output di una funzione


annam90
11-05-2010, 11:13
avrei una domandina da fare..se una funzione dà in output un nuovo vettore creato dalla funzione stessa in che modo posso copiarlo in una variabile nel main?

oregon
11-05-2010, 11:22
Se hai a disposizione un vettore, non potrai certo copiarlo in una variabile, ma ci vorrà un vettore equivalente ...

Ma se hai a disposizione già il vettore, perchè copiarlo?

annam90
11-05-2010, 11:29
mi spiego meglio... la funzione effettua delle operazioni su vettori di input e restituisce il risultato con su nuovo vettore... non so come visualizzare il risultato quindi il vettore di output... è possibile farlo? so che sarebbe più semplice memorizzare il risultato su uno dei vettori di input ma vorrei capire se è possibile fare questa operazione...

antotan
11-05-2010, 11:59
Certo che puoi. Alloca la memoria necessaria al tuo vettore di output e ritorna il relativo puntatore:



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

int* f(int* arr, int size)
{
int* newArr = (int*)malloc(sizeof(int) * size);
int i;

for(i = 0; i < size; i++)
{
newArr[i] = arr[i] * 2;
}

return newArr;
}

void print(int* arr, int size)
{
int i;

for(i = 0; i < size; i++)
{
printf("%d - ", arr[i]);
}
printf("\n");
}

int main()
{
int x[] = {1,2,3};
print(x, 3);

int* newArr = f(x, 3);
print(newArr, 3);

free(newArr);
return 0;
}


:ciauz:

Loading