malloc分配出*a的大小,但是如果使用sizeof(a)/sizeof(a[0])的到的结果并不对,那么如何使用动态分配内存的方法并且可以将数组长度计算出来?
那如果要确定数组的大小,可以使用sizeof(a)/sizeof(a[0])吗,这样得出的结果会是初始化时定义的数组大小吗?如果是的话,sizeof(a)/sizeof(a[0])应该怎么使用?
追答我已经说过了sizeof(a)==4,而sizeof(a[0])若a[0]是int型的话也是4,所以sizeof(a)/sizeof(a[0])的结果就是1,得不到a的大小。a指向的空间的大小事先必须是知道的,要不然怎么malloc? 只有a是数组名的情况下sizeof(a)/sizeof(a[0])才能测出数组a有多少个元素,但这又有什么意义?有多少元素,定义数组时就知道,sizeof(a)/sizeof(a[0])又测不出a中实际有多少元素,还是需要程序员控制!