Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C++
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 22-May-13 1:23am
AsthaS453
Edited 22-May-13 1:25am
v2
Comments
Maximilien at 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.
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

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.
  Permalink  
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

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.
  Permalink  

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



Advertise | Privacy | Mobile
Web03 | 2.8.150302.1 | Last Updated 22 May 2013
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100