I have one question about double pointers . For exemple inserting node in tree Code: int insert( cvor [B]**glava[/B] , char *name , float number ) { cvor *temp; int where ; if ( *glava == NULL ) { temp = (cvor*)malloc(sizeof(cvor) ) ; if (temp == NULL ) printf("error"); temp->left = temp->right = NULL ; strcpy ( temp->name, name ) ; temp->number = number; *glava = temp ; return 1; } else { where = strcmp (name , (*glava)->name); if ( !where ) return -1; if ( where < 0 ) return dodaj( &((*glava)->left) , name , number ) ; return dodaj( &((*glava)->right) , name , number ) ; } } So why must be double pointer in this function (Bold) ? Or in creating list ?