shodan ha scritto:
(ditemi che non è così!)
Invece è così: le variabili locali a una funzione vivono solo all'interno della funzione.
Tra l'altro quel tipo di dichiarazione dell'array è consentita solo in C99 (che a quanto ne so l'implementa solo gcc), ma tutta la funzione mi pare shangerata: hai collisioni di nomi delle variabili (int *name e char name dell'argomento), assegni un puntatore int a un char.
Non è più semplice:
int *initialize(int length) {
return malloc(sizeof(int)* length);
}
?
in effetti per la dichiarazione dell'array è così (compilo in gcc). Scusa per le sciocchezze che potrei dire ma ho imparato da me (con l'aiuto di alcune guide) e uso il C in connessione con R (lo so che non è una buona scusa per non saperne molto in materia e per essere un barbaro del C ). In effetti volevo che la stringa immessa diventasse il nome del puntatore e parte del nome della variabile...
comunque la tua proposta mi sembra molto interessante: in pratica la funzione mi torna un puntatore a un vettore di interi di lunghezza lenght?
quindi volendo un puntatore di nome res (a un array di 10 elementi) è questa la sintassi:
int *res;
res=initialize(10);
?
poi, chiaramente faccio una funzione analoga per puntatore a double...
molte grazie!