私は基本的なC++演習を行っています。これは私のコードである文字列を初期化するときのEAccess違反
...私はchar型の行列にいくつか記載されている単語を渡す必要がありますが、私は行列を初期化する問題を抱えている:
class Cahorcado
{
public:
//functions
Cahorcado(void);
private:
char** palabra;
};
Cahorcado::Cahorcado(void)
{
for(int i=0;i<26;i++)
{
for(int i2=0;i2<255;i2++)
{
palabra[i2][i]=' '; //i'm getting the error over here
}
}
}
私は、「イー・アクセス違反」エラーを取得しています。.. I cantは文字列を使用し、charまたはAnsiString(C++ビルダー)でなければなりません。 imがchar行列を良いと宣言するかどうかわかりません。私は心の中に持っている何 は次のようなものです:
{'H','e','l','l','o', ,
'W','o','r','l','d', ,
, , , , , ,
, , , , , , }
(ちょうど作るためのアイデア)
http://pastebin.com/gBQvED5h < - あなたのクラスの開始時に完全なコード(スペイン語警告)
ヒント:たとえば、あなたがあなたの文字行列を格納する
std::vector<std::vector<char>>
オブジェクトを使用することができ、その後、あなたのクラスは次のようになりますあなたのポインタが指しているものと考えます。 – juanchopanzaあなたが 'palabra = new char * [26];'と26 'palabra [i] = new char [255];' sまたは類似の隠蔽をしていなければ、配列の記憶域を割り当てていません。 – user4581301
'char ** palabra;'を 'char palabra [255] [26];に変更すると、その時点でクラッシュすることはなくなりました。しかし、あなたが投稿しなかったコードのどこかでまだクラッシュする可能性があります。 – dxiv