#include <stdio.h>
#include <stdlib.h>

void sub(int *p){
int *i;

i = (int *) malloc(sizeof(int));
*i = 100;
p = i;
}


int main(void){
int *ip;

sub(ip);
printf("%d", *ip);

return 0;
}

100じゃなくて0が表示されるのはなんで?