This doesnt printf the expected result-5.Code:#include<stdio.h> #include<stdlib.h> int CompareIntegerDefault(void *data1, void *data2) { if(*(int *)data1>*(int *)data2) return (1); else if(*(int *)data1==*(int *)data2) return (0); else return (-1); } typedef struct AVLTreeNode { void *data ; int balfact ; struct AVLTreeNode *left ; struct AVLTreeNode *right ; } AVLTreeNode,*AVLTreeNodePtr; typedef struct ContainerHandle { struct AVLTreeNode *AVLRoot; //int h; }ContainerHandle_t,*ContainerHandlePtr_t; int h; void buildtree (AVLTreeNodePtr *root, void *data ) { struct AVLTreeNode *node1, *node2 ; if ( !root ) { (*root) = ( struct AVLTreeNode * ) malloc ( sizeof ( struct AVLTreeNode ) ) ; (*root) -> data = data ; (*root) -> left = NULL ; (*root) -> right = NULL ; (*root) -> balfact = 0 ; h=1; return ; } } ContainerHandlePtr_t List; int main() { int a; List=(ContainerHandlePtr_t)malloc(sizeof(ContainerHandle_t)); List->AVLRoot=NULL; a=5; buildtree ( &(List->AVLRoot),&a); printf("%d",*(int *)(List->AVLRoot->data)); return 0; }
Why???????