私はC++には新しく、すべてのポインタのものに慣れていく上でいくつか問題があります。基本的には、関数へのポインタを渡して、そのポインタで配列を作成しています。メインの関数に戻り、私はこの配列にアクセスできません。ここでC++シンプルなポインタの受け渡し
は私のコードです:
#include <iostream>
using namespace std;
void createArray(char** dict, int* arraysize)
{
*arraysize = 26*26*26*26;
delete dict;
dict = 0;
//Initialisiere character array of character
//char **wortliste = 0;
dict = new char*[*arraysize];
for(int i = 0; i < *arraysize; i++)
dict[i] = new char[5];
int ctr = 0;
//Erstelle Einträge (sortiert)
for (char i = 'A'; i <= 'Z'; i++)
{
for (char j = 'A'; j <= 'Z'; j++)
{
for (char k = 'A'; k <= 'Z'; k++)
{
for (char l = 'A'; l <= 'Z'; l++)
{
dict[ctr][0] = i;
dict[ctr][1] = j;
dict[ctr][2] = k;
dict[ctr][3] = l;
dict[ctr][4] = '\0';
ctr++;
}
}
}
}
}
int main(void)
{
char** dict = 0;
int arraysize;
createArray(dict, &arraysize);
cout << dict[0] << endl << dict[arraysize-1] << endl;
return 0;
}
私は私の誤りを把握することはできません事前にどうもありがとうございました。
あなたは配列を作成していません。それは単なるダブルポインタです。 – iammilind
初めて 'createArray'を呼び出すと、初期化されていないポインタに対して' delete'を実行します。それは未定義の動作です。 – jrok
エラーは、C++でそのようなことを試みたことです。 –