宿題の場合、文字列の配列(構造体にある)にメモリを割り当てる関数を定義する必要があります。
各文字列の長さは次のとおりです。MAX_WORD_LEN+1(= 10 + 1)len
文字列の数にメモリを割り当てる必要len
があり、入力で受信されます。
文字列定義の配列を使用した構造体(指定):
struct dict{
int len;
char (*dict0)[MAX_WORD_LEN+1];
char (*dict1)[MAX_WORD_LEN+1];
};
宣言がわかりませんchar (*dict0)[MAX_WORD_LEN+1];
- 関数宣言も与えられます:
void createDict(struct dict * myDict);
これは私が書いたものですが、それが機能するかどうかはわかりません。コンパイラでチェックするのに苦労しています。また、このWebサイトや他のWebサイトからの投稿に基づいて作成しましたが、実際には理解していません。
オプション1:
void createDict(struct dict* myDict)
{
myDict->(*dict0) = malloc( (myDict->len)*sizeof(char*));
myDict->(*dict1) = (char**) malloc( (myDict->len)*sizeof(char*));
for(int i=0;i<(myDict->len);i++)
{
(myDict->(*dict0)[i]) = (char*)malloc((MAX_WORD_LEN+1)*sizeof(char));
(myDict->(*dict0)[i]) = (char*)malloc((MAX_WORD_LEN+1)*sizeof(char));
}
}
オプション2:
(myDict->(*dict0)[MAX_WORD_LEN+1]) = malloc((myDict->len) * sizeof(char*));
(myDict->(*dict1)[MAX_WORD_LEN+1]) = malloc((myDict->len) * sizeof(char*));
説明してください...