Hi All

I am trying to create Binary tree from array elements but when I tried to run this program, it was giving segementation fault error.

The code is as follow:
Code:
#include<stdio.h>
#include<stdlib.h>

struct node 
{

 struct node *left;
 struct node *right;

int data;
};

void insert(struct node **p,int num) {

if ( *p == NULL )
{
  
  (*p) = (node *)malloc(sizeof(struct node));
  (*p)->left = NULL;
  (*p)->right = NULL;
  (*p)->data = num; 
}
else
{
  if( num == (*p)->data)
     return;
}

if ( num < (*p)->data)
insert(&((*p)->left),num);
else
insert(&((*p)->right),num);
}


void createBinary(struct node *ptr,int a[],int i)
{
  int m;
   
  for ( m = 0;m< i; m++ )
  {

   insert( &ptr,a[m]);
   
  }  
}

int main()
{
  int a[] = {11,12,13,14,15};
  int size1 =0;
  struct node *ptr = NULL;


  size1=sizeof(a) / 4;
        
  createBinary(ptr,a,size1);
 }
Could any body help me where is the problem.


Thanks