DarkRevenge
09-05-2005, 23:56
Ciao a tutti!! Questo è il mio primo messaggio su questo forum.
Ho un piccolo problema in un mio listato in C. Cercherò di esporlo al meglio (anche se non è facilissimo per me :( ).
Allora... nella funzione main() ho dichiarato 2 puntatori a double:
double *punt1, *punt2;
questi puntatori dovranno puntare a due zone di memoria (array) allocate tramite malloc(). L'allocamento di entrambe le zone deve però avvenire in un'unica funzione esterna alla main, per questo entrambi i puntatori dovranno essere passati alla funzione come parametri. In seguito, nella funzione main dovrò poter accedere a queste zone di memoria tramite i due puntatori punt1 e punt2. Questa è quella che dovrebbe essere la struttura del mio problema:
void funz(... p1, ... p2);
int main()
{
double *punt1, *punt2;
/* operazioni del main */
funz(...punt1, ...punt2);
/* operazioni con i puntatori punt1, punt2 */
free(punt1);
free(punt2);
return 0;
}
void funz(... p1, ... p2)
{
p1 = malloc(...);
p2 = malloc(...);
/* altre operazioni che utilizzano p1 e p2 */
}
Il mio problema è: come devo passare i puntatori alla funzione e come devo usarli all'interno di essa, in modo che possano poi essere usati i puntatori dichiarati nel main per accedere alle stesse zone allocate nella funzione?
Spero di essere stato abbastanza chiaro... :muro: :muro:
Ho un piccolo problema in un mio listato in C. Cercherò di esporlo al meglio (anche se non è facilissimo per me :( ).
Allora... nella funzione main() ho dichiarato 2 puntatori a double:
double *punt1, *punt2;
questi puntatori dovranno puntare a due zone di memoria (array) allocate tramite malloc(). L'allocamento di entrambe le zone deve però avvenire in un'unica funzione esterna alla main, per questo entrambi i puntatori dovranno essere passati alla funzione come parametri. In seguito, nella funzione main dovrò poter accedere a queste zone di memoria tramite i due puntatori punt1 e punt2. Questa è quella che dovrebbe essere la struttura del mio problema:
void funz(... p1, ... p2);
int main()
{
double *punt1, *punt2;
/* operazioni del main */
funz(...punt1, ...punt2);
/* operazioni con i puntatori punt1, punt2 */
free(punt1);
free(punt2);
return 0;
}
void funz(... p1, ... p2)
{
p1 = malloc(...);
p2 = malloc(...);
/* altre operazioni che utilizzano p1 e p2 */
}
Il mio problema è: come devo passare i puntatori alla funzione e come devo usarli all'interno di essa, in modo che possano poi essere usati i puntatori dichiarati nel main per accedere alle stesse zone allocate nella funzione?
Spero di essere stato abbastanza chiaro... :muro: :muro: