开发者社区 问答 正文

c语言里面malloc的问题

代码如下:

   #include<stdio.h>                                                          
void main()
{
int *a = NULL;
int b[10];
       a = malloc(sizeof(int)*10);

      printf("a:%ld\n",sizeof(a));

      printf("b:%ld\n",sizeof(b));

      free(a);
}

出来的结果为什么是
a:8
b:40
求解第一个为什么是8?

展开
收起
a123456678 2016-03-19 14:10:21 1962 分享 版权
1 条回答
写回答
取消 提交回答
  • sizeof(a); a是一个指针,所以计算的是一个指针的大小,不同系统大小不一。32位一般是4,你的应该是64位
    sizeof(b); b是数组名,计算的是数组的大小,

    2019-07-17 19:08:06
    赞同 展开评论
问答分类:
问答标签:
问答地址: