怎么获取动态数组的大小

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

------解决方案--------------------
动态申请的数组不能用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;
}