I want to convert the type of the pointer 'p'.  Begining ,the type of the pointer p is void .After allocating four bytes of memory for it, I cast pointer type into 'int',However ,this doesn't work . maybe the sentence p=(int *)p doesn't work.
Please tell me why  and solve the problem.thanks.
The coding: 
#include<stdio.h>
#include <stdlib.h>
 int main(void)
{
   void *p;
   p=malloc(sizeof(int));
   if(p == NULL)
    {
        perror("fail to malloc");
        exit(1);
    }
    p=(int *)p;
        *p=100;
    printf("the value is : %d\n",*p);
    return 0;
 } 
 
     
     
     
     
    