多语言展示
当前在线:1607今日阅读:23今日分享:25

如何获取指针指向数组的大小

如何获取指针指向数组的大小
方法/步骤
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); // 会触发错误

推荐信息