質問として、char **配列に含まれる要素の数を読み取る方法はありますか?char **配列の要素数を取得する方法
次のコードprint
の機能では、charpp
の配列の要素の数は、変数sizeofArray
を読み取ることなく見つける必要があります。
#include <iostream>
using namespace std;
char** charpp;
void print(char** charpp){
cout << "Size: " << sizeof(&charpp) << "\r\n";
for(int i=0;i< sizeofArray;i++){
if (charpp[i]!=NULL)
cout << i << " : " << charpp[i] << "\r\n";
}
}
void main() {
int sizeofArray = 27;
charpp = new char*[sizeofArray];
for(int i = 0; i < sizeofArray; i++) {
charpp[i] = NULL;
}
charpp[1] = "test1";
charpp[5] = "test5";
print(charpp);
charpp? delete(charpp):0;
cin.get();
}
私は申し訳ありませんが不可能です。私は主にC#のJavaプログラマであり、両方の言語で文字列配列のサイズを見つけるのは簡単です。
C++では、文字列配列のサイズを見つけることも簡単です。 C++の文字列配列は 'std :: vector'と綴られています。 –
@KerrekSB、はい、残念なことに私のコードではchar *を使用することを選択しました。文字列のサイズを探していません。要素の文字列配列のサイズを探しています – AaA
できません。 'charpp'は配列ではなく、' char * 'へのポインタです。あなたは一緒にサイズを渡す必要があります。また、削除する前にnullをチェックする必要もありません。 'delete'は関数ではありません - ' delete [] charpp; 'はあなたが書くべきものです。 (おそらくあなたも[これらの](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)のいずれかが必要です。) – molbdnilo