char ** ptr = new char *[3];
ptr[0] = new char [5];
ptr[1] = new char [6];
ptr[2] = new char [7];
cout<<"Enter first array: ";
cin.getline(ptr[0], 5);
cin.getline(ptr[1], 6);
cin.getline(ptr[2], 7);
for (int i=0; i<3; i++){
cout<<ptr+i<<endl;
}
for (int i=0; i<3; i++){
delete[] ptr[i];
}
を宣言し、それは次のような出力が得られます。ポインタが動的に
Enter first array: name
0xf99c20
0xf99c28
0xf99c30
私は実際にプリントアウトしたユーザの入力を求めていました。
どうすればいいですか?
のErr ...へのソリューション? – WhiZTiM
'*(ptr + i)'と同じ 'ptr [i]'を印刷したかったでしょう。ところで、ループの最後の 'delete [] ..'にもかかわらず、まだ漏れがあります。あなたの文字列のニーズに 'std :: string'を優先し、配列に' std :: vector 'が必要です –
WhiZTiM
1.何の解決策? 2.コードの最後に '[ptr'を削除する必要があります。 3. 'char * ptr [3]'を宣言することもできます(割り当てたり削除するのではなく)。 4.あなたがしようとしていることは、もっと簡単で、より良く、より正確なやり方があります。 –