2 imatt iMatt 于 2014.07.03 10:33 提问

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个回答

u010136832
u010136832   2014.07.24 08:46
已采纳

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!