怎么获取动态数组的大小
如何获取动态数组的大小?
很多计算方法的实现都要依靠矩阵。而矩阵的大小要由用户来决定(即在运行时确定)。这就需要用到(多维)动态数组了。申请完内存之后,程序的其他地方可能还需要知道该动态数组的大小。请高手指教。
------解决方案--------------------
动态申请的数组不能用sizeof(x)/sizeof(x[0])获得大小
很多计算方法的实现都要依靠矩阵。而矩阵的大小要由用户来决定(即在运行时确定)。这就需要用到(多维)动态数组了。申请完内存之后,程序的其他地方可能还需要知道该动态数组的大小。请高手指教。
------解决方案--------------------
动态申请的数组不能用sizeof(x)/sizeof(x[0])获得大小
- C/C++ code
int * p = new int[3]; cout<<sizeof(p)/sizeof(p[0])<<endl;
------解决方案--------------------
当p是指针时
sizeof(p)/sizeof(p[0])
这个表达式本身就是不伦不类毫无意义的
输出其他的值也是可能的
------解决方案--------------------
同意楼上, 动态分配的数组还是用个变量记录其大小吧
------解决方案--------------------
同意楼上的楼上
ps
- C/C++ code
#include <iostream> using namespace std; int main() { char *p = new char[10]; int x = sizeof(p)/sizeof(p[0]); cout << x << endl; double *q = new double[20]; int y = sizeof(q)/sizeof(q[0]); cout << y << endl; return 0; }