Click here to Skip to main content
15,880,967 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
hii

I am using two dimensional char array of pointers for saving list of names as follows :

int size;

char** name;
name=new char*[size];

I am reading the "size" from the user and then I am storing the names entered by the user in this array.

Now my question is through my code how can i get the size of this array, i.e I wanted to know how many names are being read?

Thankss
Posted
Updated 22-May-13 0:25am
v2
Comments
Maximilien 22-May-13 8:42am    
Since this is tagged as C++ , I would suggest using a vector of string instead of arrays of char*; it will help you a lot.

Hi,

actually you cannot do thi, because the array is allocated dynamically (= you use operator new to allocate it). As a result you have to remember the length of the array in a variable (such as size that you have) and you need to pass this size as a parameter to all methods/functions that need to be aware the size.

(If you are using this code in method of a class, you can store the size of the array in a member variable and so avoid the need to pass it to the member methods as a parameter.)

Hope this helps.

Best regards,
J.K.
 
Share this answer
 
There are basically two techniques, either:

  • (As already suggested by Kucera Jan) make a copy of the size parameter and use it when needed.

or
  • Add a sentinel element to the array, namely a NULL pointer at the end of the array.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900