The C++ source code given below is an example usage of char**. It is also called a character double pointer, used for managing two-dimensional arrays of string variables.
Keep reading to learn more & see detailed examples.
char** greenLandMD; greenLandMD = new char*[5];// initialize the double pointer greenLandMD[0]=new char[4];// initialize 1st char*, with capacity of 4 chars greenLandMD[1]=new char[5];// initialize 2nd char*, with capacity of 5 chars strcpy(greenLandMD[0],"Bst @");//copy some data to 1st string strcpy(greenLandMD[1],"Bi! 1");//copy some data to 2nd string greenLandMD[3]="W ared";// an alternate way of copying data // print and see the data cout<<greenLandMD[0]<<endl<<greenLandMD[1]<<endl<<greenLandMD[3]<<endl;
Defining strings in C and C++:
A string is an array of characters (char) data type variables in C and C++ programming languages. For example, an array of characters is defined as follows:
char myString[50];
Note: Do check my C# online programming courses with a discount below
Best selling Udemy course
It is possible to initialize the array of characters at run time with the below line of code.
char myInitializedString[50]={"I am invincible..."};
An alternate technique of defining character arrays with the help of char pointers can be used as well(char* stands for character pointer), which is demonstrated below:
char* myInitializedCharPtr = "Here we go again";
What if someone wants to store multiple strings in an array? It's called an array of strings or a multi-dimensional array. Someone recently asked me how to keep numerous strings in an array in the C programming language? It is relatively simple to create and initialize an array of strings in your program.
char ArrayOfStringsInitialized[3][50] = {"Rock and Rolla","iToka","Thats it"};
This multi-dimensional array of strings contains 3 strings, each of length up to 50 characters.
To iterate the array we just created, do the following...
for(int n = 0; n<=2/*less than last element of array*/;n++) { cout << ArrayOfStringsInitialized[n] << endl; }
Dynamic two-dimensional (2D) array
Suppose we need to create a multi-dimensional array on run time, using pointer types. We will need a char double pointer or char**. The two stars stand for a double pointer, and it will make your C++ programming language code look something like the example given below:
char** greenLandMD; greenLandMD = new char*[5];// initialize the double pointer greenLandMD[0]=new char[4];// initialize 1st char*, with capacity of 4 chars greenLandMD[1]=new char[5];// initialize 2nd char*, with capacity of 5 chars strcpy(greenLandMD[0],"Bst @");//copy some data to 1st string strcpy(greenLandMD[1],"Bi! 1");//copy some data to 2nd string greenLandMD[3]="W ared";// an alternate way of copying data // print and see the data cout<<greenLandMD[0]<<endl<<greenLandMD[1]<<endl<<greenLandMD[3]<<endl;
When you run your C++ program, the console will show output as follows:
c:\>Bst @ Bi! 1 W are |
The example source code below shows an alternate way to achieve the same result in C++.
cout<<*(greenLandMD+3)<<endl;
At this point, the array will look like the graphic below.
cout<<*(greenLandMD+0)<<endl; cout<<*(greenLandMD+1)<<endl;
At this point, the array will look like the graphic below.
- The size of strings contained by an array of string is not the same. The length varies.
- It is possible to leave un-initialized space at any slot of a multi-dimensional array in C/C++ programs.
Modern virtual machine-based programming languages such as Java and C# solve memory allocation and cleanup problems on behalf of the programmers. Of course, there is a performance penalty associated when the JVM or CLR is managing the memory on your behalf. But, such programs are way safer than bare-bones C/C++ programs where you have to do the memory allocation & cleanup yourself. But there still are problems that must be solved using unmanaged C/C++ code; one example is fighter jet software. Lockheed Martin recently won an F-35 software upgrade bid worth $1.8 Billion. I believe this software upgrade must be done in assembly, C, C++, or another language.
Freeing memory of char * and char**
Deleting the main array will suffice to free the memory consumed by double pointers. In our case, we'll do the following:
delete [] greenLandMD;
The C programming language uses malloc and memfree for allocating and freeing up memory. There was another method, memset, which was used to clean up memory allocated to a program. But that's beyond the scope of this article.
I think this much is enough on this topic; for more, please feel free to comment on this post.
More than 65% discount on my online courses can be availed now by clicking the links below:
Lê Trường An: When we get memory for a char * using new keyword, it is good to clean it using "memset" method call, and supply 0 as second character.
ReplyDeleteFor more information, please see:
http://www.cplusplus.com/reference/clibrary/cstring/memset/
https://www.limoni.ch/?attachment_id=775#comment-247556
ReplyDeletePgslot Where every day is a lucky day.
ReplyDeleteA Programmer'S Day: Char** Array Of Strings In C And C Plus Plus(C++) >>>>> Download Now
ReplyDelete>>>>> Download Full
A Programmer'S Day: Char** Array Of Strings In C And C Plus Plus(C++) >>>>> Download LINK
>>>>> Download Now
A Programmer'S Day: Char** Array Of Strings In C And C Plus Plus(C++) >>>>> Download Full
>>>>> Download LINK
A Programmer'S Day: Char** Array Of Strings In C And C Plus Plus(C++) >>>>> Download Now
ReplyDelete>>>>> Download Full
A Programmer'S Day: Char** Array Of Strings In C And C Plus Plus(C++) >>>>> Download LINK
>>>>> Download Now
A Programmer'S Day: Char** Array Of Strings In C And C Plus Plus(C++) >>>>> Download Full
>>>>> Download LINK EA
Muğla
ReplyDeleteSamsun
Eskişehir
Sakarya
Kars
Xİ2
amasya
ReplyDeletesinop
çorum
sakarya
van
HKVGYH
görüntülüshow
ReplyDeleteücretli show
2YD
910A8
ReplyDeleteÇerkezköy Koltuk Kaplama
Malatya Şehir İçi Nakliyat
Sinop Parça Eşya Taşıma
Artvin Lojistik
Bitlis Evden Eve Nakliyat
Kilis Parça Eşya Taşıma
Sivas Evden Eve Nakliyat
Iğdır Şehir İçi Nakliyat
Malatya Lojistik
84061
ReplyDeleteIğdır Parça Eşya Taşıma
Ünye Halı Yıkama
Şırnak Şehirler Arası Nakliyat
Osmaniye Şehir İçi Nakliyat
Kripto Para Nedir
Şırnak Parça Eşya Taşıma
Bitfinex Güvenilir mi
Çankırı Şehir İçi Nakliyat
Rize Lojistik
FAEBF
ReplyDeletereferans kodu %20
CE6DD
ReplyDeleteMilyon Coin Hangi Borsada
Binance Kaldıraçlı İşlem Nasıl Yapılır
Linkedin Beğeni Satın Al
Caw Coin Hangi Borsada
Yeni Çıkacak Coin Nasıl Alınır
Kripto Para Nasıl Alınır
Bitcoin Üretme Siteleri
Twitter Trend Topic Satın Al
Telcoin Coin Hangi Borsada