# include <stdio.h>
#include <stdlib.h>
int main() {
int *v=NULL ;
int i, val;
int size = 0;
do {
printf ( "Inserire un nuovo elemento nell'array :");
scanf ("%d", &val);
v = (int*) realloc( v, (++size)*(sizeof(int)) );
v[size-1] = val;
} while (val != -1);
printf( "Elementi nell'array:");
for ( i=0; i < size; i++ )
printf ("%d ", v[i]);
free(v);
return 0; }
Ho scritto questo programma al fine di poter stampare una stringa con un numero indefinito di elementi ma ora sul mio libro i e' cominciato a parlare di funzioni che restituiscono puntatori. Per questo vorrei chiedervj se , utilizzando una funzione che restituisce un puntatore , e' possibile avere un output uguale al primo caso? Ho fatto una prova provando a modificare il codice ma mi da errore .. Grazie in anticipo per l'aiuto
#include <stdio.h>
#include <stdlib.h>
int* funz() {
int n;
int i ;
do {
printf ( "Inserire un nuovo elemento nell'array :");
scanf ("%d", &i);
*v = (int*) malloc(n*(sizeof(int)) );
v[i] = i;
while ( i != -1 );
return v; }
int main() {
int i;
int n;
int *v = funz();
for ( i=0; i<n ; i++ )
printf ( " l'array e' \n", v);
free(v);
return 0;
}