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?
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?
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?
No MP tecnici (non rispondo nemmeno!), usa il forum.
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...
Certo che puoi. Alloca la memoria necessaria al tuo vettore di output e ritorna il relativo puntatore:
codice:#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; }![]()