我有以下声明:
char ***a;
a = new char**[1];
a[0] = new char*[2];
a[0][0] = "Dynamic";
a[0][1] = "Array";
现在我需要在“a”和“a [0]”中找到元素的数量。我怎么能用C或C ++做到这一点?
答案 0 :(得分:2)
据我所知,当您将数组的第一个元素作为指针传递给某个函数/方法时,无法在动态分配的数组中找到元素数。最佳做法是避免使用此类数组,并在使用时将已分配元素的数量与指针一起传递。
void doSomething(int * p, int elms) {
//...
}
int main(){
int * arr = new int[10];
doSomething(arr, 10);
}