Frozen2022 2014-07-02 18:33 采纳率: 80%
浏览 2877
已采纳

C语言malloc后使用sizeof的问题

编译器visual studio
如下代码:

   int **ip;
    ip = (int **)malloc( sizeof(int*) *2);
    for(int i = 0;i < 2 ; ++i)
    {
        ip[i] = (int *)malloc(sizeof(int) * 3);
    }
    //测试sizeof(ip)/sizeof( int *)值为1,
    //sizeof(p)值为4,
    //测试sizeof(ip[0])/sizeof( int)值也为1,

在看如下代码:

int ia[2][3];
//测试sizeof(ia)/sizeof( int *)值为2,
//sizeof(p)值为24,
//
//测试sizeof(ia[0])/sizeof( int)值也为3,
  • 写回答

1条回答 默认 最新

  • 小邓在路上 2014-07-23 16:46
    关注

    sizeof计算的是变量所占的内存的大小,在32位iede操作系统下面,所有的指针类型的大小又是4 ,int类型的数据大小为4 字节,懂了吧,只要是指针全是4 ,其他的数据类型看具体的情况,数组大小 为数组的类型大小*数组的长度

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?