读书人

怎么获取动态数组的大小

发布时间: 2012-03-13 11:21:10 作者: rapoo

如何获取动态数组的大小?
很多计算方法的实现都要依靠矩阵。而矩阵的大小要由用户来决定(即在运行时确定)。这就需要用到(多维)动态数组了。申请完内存之后,程序的其他地方可能还需要知道该动态数组的大小。请高手指教。

[解决办法]
动态申请的数组不能用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;} 

读书人网 >C++

热点推荐