malloc的问题
#include <stdio.h>#include <string.h>
#include <stdlib.h>
void fun (char str[100])
{
printf("%d\n"),sizeof(str);
}
int main ()
{
char str[]="hello";
char *p1=str;
int n=10;
char *p2=(char *)malloc(100);
printf ("%d\n",sizeof(str));
printf("%d\n",strlen(str));
printf("%d\n",strlen(p1));
printf("%d\n",sizeof(n));
printf("%d\n",sizeof(p2));
fun(p2);
printf("\n");
return 0;
}
源程序如上 最后一个printf输出的值哪位高人给解释一下 我应该是4啊 但是程序运行出来的结果 1245045