如何获取指针指向数组的大小
方法/步骤
1
用 _msize取内存计算的方法struct DATA{ int price; char name[100];};void fn(DATA *d){ int n; n = _msize(d) / sizeof(DATA); // 这里计算出 d 的数组长度为 13 cout << n << endl;}int _tmain(int argc, _TCHAR* argv[]){ DATA *d; d = new DATA[13]; fn(d); system('pause');}_msize 只能取得 new, malloc 分配的内存大小。因此这种方法还是有一定的局限性的。
2
如果直接定义了数组的长度。再将数组传递给函数。_msize 是没法取得所传指针内存大小的。如:DATA d[10];fn(d); // 会触发错误
上一篇:餐厅灯光的色温怎样应用?
下一篇:母乳能提供宝宝足够的营养