Click here to Skip to main content
13,056,352 members (120,123 online)
Rate this:
Please Sign up or sign in to vote.
See more:

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?

Posted 22-May-13 0:23am
Updated 22-May-13 0:25am
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.
Rate this: bad
Please Sign up or sign in to vote.

Solution 1


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,
Rate this: bad
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.

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

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

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web02 | 2.8.170728.5 | Last Updated 22 May 2013
Copyright © CodeProject, 1999-2017
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