-
wrote on 11 Feb 2021, 14:09 last edited by
Hello Friends And Qt Experts
Currently I am Facing int* array length finding ProblemI want to find the Length of Dynamic array
i am able to find the length of
int[]
but i can't find the length ofint*
i want to know how many elements are in
int*
ArrayFor Example ::
int *Temp = new int[50]; Temp[0] = 10; Temp[1] = 20; Temp[2] = 30; Temp[3] = 40; Temp[4] = 50; Temp[5] = 60; Temp[6] = 70; Temp[7] = 80; Temp[8] = 90; Temp[9] = 100;
I want to find The Length of Temp
Here you can see i have add 10 Elements in My Temp ArrayIs There any way to Find the length of any dynamic Array at runtime ?
-
@J-Hilk
I was Try this But Application is Still Crashing
std::vector<std::vector<std::vector<int>>> Temp; Temp.at(0).at(0).push_back(10); Temp.at(0).at(0).push_back(20); Temp.at(0).at(0).push_back(30); Temp.at(0).at(0).push_back(40); cout << Temp.at(0).at(0).at(0); cout << Temp.at(0).at(0).at(1); cout << Temp.at(0).at(0).at(2); cout << Temp.at(0).at(0).at(3);
std::vector<std::vector<std::vector<int>>> Temp; int targetSize = 4; Temp.resize(targetSize,std::vector<std::vector<int> >(targetSize,std::vector<int>(targetSize))); Temp.at(0).at(0).at(0) = 10; Temp.at(0).at(0).at(1) = 20; Temp.at(0).at(0).at(2) = 30; Temp.at(0).at(0).at(3) = 40;
-
wrote on 11 Feb 2021, 14:11 last edited by
No, there is no way. int* is only a pointer, it doesn't even know it's an array.
Why not use a proper array?
-
@Ketan__Patel__0011 said in How to Get Length Of Int* Array:
Is There any way to Find the length of any dynamic Array at runtime ?
Use a proper container.
-
No, there is no way. int* is only a pointer, it doesn't even know it's an array.
Why not use a proper array?
wrote on 11 Feb 2021, 14:14 last edited byThere are The Lot's of reason for it like Runtime Size Or Memory Allocation Based On My Data
-
Hello Friends And Qt Experts
Currently I am Facing int* array length finding ProblemI want to find the Length of Dynamic array
i am able to find the length of
int[]
but i can't find the length ofint*
i want to know how many elements are in
int*
ArrayFor Example ::
int *Temp = new int[50]; Temp[0] = 10; Temp[1] = 20; Temp[2] = 30; Temp[3] = 40; Temp[4] = 50; Temp[5] = 60; Temp[6] = 70; Temp[7] = 80; Temp[8] = 90; Temp[9] = 100;
I want to find The Length of Temp
Here you can see i have add 10 Elements in My Temp ArrayIs There any way to Find the length of any dynamic Array at runtime ?
like @Asperamanca said, you can't,
why not use std::vector ? thats the perfect substitution -
@Ketan__Patel__0011 said in How to Get Length Of Int* Array:
Is There any way to Find the length of any dynamic Array at runtime ?
Use a proper container.
wrote on 11 Feb 2021, 14:15 last edited by -
like @Asperamanca said, you can't,
why not use std::vector ? thats the perfect substitutionwrote on 11 Feb 2021, 14:17 last edited by Ketan__Patel__0011 2 Nov 2021, 14:21@J-Hilk
thanks for your reply
std::vector is good idea but some issues like Memory location access or Memory Allocation
And Very difficult for Multidimensional
-
@J-Hilk
thanks for your reply
std::vector is good idea but some issues like Memory location access or Memory Allocation
And Very difficult for Multidimensional
@Ketan__Patel__0011 said in How to Get Length Of Int* Array:
std::vector is good idea but some issues like Memory location access or Memory Allocation
what do you mean? vector is literally a heap allocated array
And Very difficult for Multidimensional
multidimensionalism is an illusion anyway but if you want the
[][]
orat().at()
syntax available to youstd::vector<std::vector<int>>
here, admittedly, you may get into differences between std::vector and good old c-array, memory wise
-
@Ketan__Patel__0011 said in How to Get Length Of Int* Array:
std::vector is good idea but some issues like Memory location access or Memory Allocation
what do you mean? vector is literally a heap allocated array
And Very difficult for Multidimensional
multidimensionalism is an illusion anyway but if you want the
[][]
orat().at()
syntax available to youstd::vector<std::vector<int>>
here, admittedly, you may get into differences between std::vector and good old c-array, memory wise
wrote on 11 Feb 2021, 14:42 last edited by Ketan__Patel__0011 2 Nov 2021, 14:42@J-Hilk
Application crashed When i used this Syntax for Vector
std::vector<std::vector<std::vector<int>>> Temp; Temp.at(0).at(0).at(0) = 10; /// My Application Crashed at this point Temp.at(0).at(0).at(1) = 20; Temp.at(0).at(0).at(2) = 30; Temp.at(0).at(0).at(3) = 40; cout << Temp[0][0][0]; cout << Temp[0][0][1]; cout << Temp[0][0][2]; cout << Temp[0][0][3];
What's Wrong in this ?
-
@J-Hilk
Application crashed When i used this Syntax for Vector
std::vector<std::vector<std::vector<int>>> Temp; Temp.at(0).at(0).at(0) = 10; /// My Application Crashed at this point Temp.at(0).at(0).at(1) = 20; Temp.at(0).at(0).at(2) = 30; Temp.at(0).at(0).at(3) = 40; cout << Temp[0][0][0]; cout << Temp[0][0][1]; cout << Temp[0][0][2]; cout << Temp[0][0][3];
What's Wrong in this ?
@Ketan__Patel__0011
you need to either reserve a size for your vectors or use the vector functions to append datapush_back, resize, reserve etc
https://en.cppreference.com/w/cpp/container/vector
or use initializer lists
-
@Ketan__Patel__0011
you need to either reserve a size for your vectors or use the vector functions to append datapush_back, resize, reserve etc
https://en.cppreference.com/w/cpp/container/vector
or use initializer lists
wrote on 11 Feb 2021, 14:50 last edited by@J-Hilk
I was Try this But Application is Still Crashing
std::vector<std::vector<std::vector<int>>> Temp; Temp.at(0).at(0).push_back(10); Temp.at(0).at(0).push_back(20); Temp.at(0).at(0).push_back(30); Temp.at(0).at(0).push_back(40); cout << Temp.at(0).at(0).at(0); cout << Temp.at(0).at(0).at(1); cout << Temp.at(0).at(0).at(2); cout << Temp.at(0).at(0).at(3);
-
@J-Hilk
I was Try this But Application is Still Crashing
std::vector<std::vector<std::vector<int>>> Temp; Temp.at(0).at(0).push_back(10); Temp.at(0).at(0).push_back(20); Temp.at(0).at(0).push_back(30); Temp.at(0).at(0).push_back(40); cout << Temp.at(0).at(0).at(0); cout << Temp.at(0).at(0).at(1); cout << Temp.at(0).at(0).at(2); cout << Temp.at(0).at(0).at(3);
std::vector<std::vector<std::vector<int>>> Temp; int targetSize = 4; Temp.resize(targetSize,std::vector<std::vector<int> >(targetSize,std::vector<int>(targetSize))); Temp.at(0).at(0).at(0) = 10; Temp.at(0).at(0).at(1) = 20; Temp.at(0).at(0).at(2) = 30; Temp.at(0).at(0).at(3) = 40;
-
@J-Hilk
I was Try this But Application is Still Crashing
std::vector<std::vector<std::vector<int>>> Temp; Temp.at(0).at(0).push_back(10); Temp.at(0).at(0).push_back(20); Temp.at(0).at(0).push_back(30); Temp.at(0).at(0).push_back(40); cout << Temp.at(0).at(0).at(0); cout << Temp.at(0).at(0).at(1); cout << Temp.at(0).at(0).at(2); cout << Temp.at(0).at(0).at(3);
wrote on 11 Feb 2021, 14:53 last edited by KroMignon 2 Nov 2021, 14:57@Ketan__Patel__0011 said in How to Get Length Of Int* Array:
was Try this But Application is Still Crashing
std::vector<std::vector<std::vector<int>>> Temp; Temp.at(0).at(0).push_back(10);
Yes of course, the 2 first vector are not defined!
You could read this article to learn how to work with multidimensionalvectors => https://mklimenko.github.io/english/2019/08/17/multidimensional-vector-allocation/
-
wrote on 11 Feb 2021, 15:04 last edited by
Maybe something like this helps:
https://www.learncpp.com/cpp-tutorial/an-introduction-to-stdvector/It also refers to std::array, which might be an alternative if you really only need fixed-sized arrays.
-
wrote on 11 Feb 2021, 15:09 last edited by Ketan__Patel__0011 2 Nov 2021, 15:16
Thanks to All for your reply
i can't find the length of the Vector
-
Thanks to All for your reply
i can't find the length of the Vector
wrote on 11 Feb 2021, 15:20 last edited by@Ketan__Patel__0011 have you really searched ? ==> https://www.cplusplus.com/reference/vector/vector/size/
-
Maybe something like this helps:
https://www.learncpp.com/cpp-tutorial/an-introduction-to-stdvector/It also refers to std::array, which might be an alternative if you really only need fixed-sized arrays.
wrote on 11 Feb 2021, 15:27 last edited by@Asperamanca
thanks for your replyBut Fixed Sized array not useful in my case
-
@Ketan__Patel__0011 have you really searched ? ==> https://www.cplusplus.com/reference/vector/vector/size/
wrote on 11 Feb 2021, 15:30 last edited byYes i see this example
They Are Declare Singla Dimension Vector and Add First 10 Element and Again Add 10 Element After the First 10th Element Index and in last step they are remove the element and display the size of vector not a length
-
Yes i see this example
They Are Declare Singla Dimension Vector and Add First 10 Element and Again Add 10 Element After the First 10th Element Index and in last step they are remove the element and display the size of vector not a length
wrote on 11 Feb 2021, 15:36 last edited by@Ketan__Patel__0011 said in How to Get Length Of Int* Array:
display the size of vector not a length
I don't understand what you want?!?
By simply reading std::vector() documentation, you could find yourself:- vector::size(): Returns the number of elements in the vector.
- vector::capacity(): Returns the size of the storage space currently allocated for the vector, expressed in terms of elements.
-
@Ketan__Patel__0011 said in How to Get Length Of Int* Array:
display the size of vector not a length
I don't understand what you want?!?
By simply reading std::vector() documentation, you could find yourself:- vector::size(): Returns the number of elements in the vector.
- vector::capacity(): Returns the size of the storage space currently allocated for the vector, expressed in terms of elements.
wrote on 11 Feb 2021, 15:57 last edited byi want to find how many elements are in the My Vector
i was used vector::size() function but it is return to me total size of vector
for example
my Vector can store 10 elements but i am add only 6 elements
so my Vector length is 6 And Vector size is 10
1/26