|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2006
Città: Napoli
Messaggi: 170
|
[C] passaggio dei parametri per riferimento
salve ragazzi,
ho la seguente funzione ricorsiva void INORDER_TREE_WALK_DEL (treenode_ptr *root,treenode_ptr node,struct timeval curr_time,struct CTRL_header ctrl_head,char* buffer,int buffer_length,Active_func_list_Ptr active_list_ptr, int actived_mtrcs,char* packet,int coll_sock_descrp,int sent_exps,char **argv) dovrei passare per riferimento i valori di buffer, buffer_length e packet. devo aggiungere un * davanti a quei parametri e poi nella funzione di richiamo aggiungere una &? INORDER_TREE_WALK_DEL (&(*root),node->left,curr_time,ctrl_head, buffer, buffer_length, active_list_ptr,actived_mtrcs, packet, coll_sock_descrp,sent_exps,argv); |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Scusa, ma allora il linguaggio di riferimento è C++, non C giusto?
Perchè mi pare che in C i riferimenti non esistano, ci sono solo i puntatori... Comunque, detta in modo spiccio (copia&incolla da link su web): Quote:
|
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Mar 2006
Città: Napoli
Messaggi: 170
|
supponendo che volessi passare per riferimento solo buffer_length, che è un intero,
scrivere in questo modo è corretto? { //nel mai richiamo la funzione INORDER_TREE_WALK_DEL (..., &buffer_length,...); } //funzione implementata {... void INORDER_TREE_WALK_DEL (...,int* buffer_length,...) codice INORDER_TREE_WALK_DEL (..., &(*buffer_length),...); codice INORDER_TREE_WALK_DEL (..., &(*buffer_length),...); } Ps i valori passati sembrano essere corretti,ma nn so se sintatticamente è corretto |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:31.



















