如何通过 指针来求出内存空间大小
怎么通过 指针来求出内存空间大小C/C++ codeint *x static_castint*(operator new[](sizeof(int)*5))
怎么通过 指针来求出内存空间大小
C/C++ codeint *x = static_cast<int*>(operator new[](sizeof(int)*5));怎么通过指针x来 求 出 动态空间分配的大小--------------------template<class Any> int LengthOfArray(Any * p) { return int(p+1) - int(p); } cout << LengthOfArray(&a) ; 我一直看不懂,这个是怎么求到大小的-----------------------
[解决办法]这个求得是一个Any类的大小,p是指向Any类对象的指针,int(P)就是这个p所指向的元素的地址,int(P+1)是下一个元素的地址,两个地址相减就得到了一个Any类所占的内存空间。
这里的关键是P+1,指针+1是地址移动的意思,移动的位数是p指针的类型决定的。
正是基于上面的原因就能求出一个Any类的大小。
[解决办法]P的下一个元素减去P自己,这样就得到一个元素的大小..
对于数组对象类型的指针 +1,就是移到下一个数组元素