1

char*配列に格納されているデータを出力するにはどうすればよいですか[C では、%pアドレスを表示するために使用します]。

char * tokens[5];
for(int i=0;i<5;i++)
tokens[i] = new char[5];

for(int i=0;i<5;i++)
std::cout<<"Address: "<<tokens[i]<<std::endl;

/*Add data in the array*/

for(int i=0;i<5;i++)
delete[] tokens[i];

これにより、

Address: 
Address: 
Address: 
Address: 
Address: 

tokens[i]それは、文字列の開始アドレスであるためcout、現在空である文字列を出力するためだと理解しています。

tokens[i]at に何を型キャストする必要がありstd::coutますか?

4

1 に答える 1

4

operator<<はオーバーロードされてchar*おり、印刷したいヌル終了文字配列があると想定しています。void*代わりにポインターの値を取得するには、 a にキャストします。

std::cout << "Address: " << static_cast<void*>(tokens[i]) << std::endl;

ここで実行中のコードを参照してください: https://ideone.com/9Cst8F

于 2013-05-16T14:40:58.173 に答える