0

これは答えるのはかなり簡単かもしれませんが、私はそれの構文を理解できないようです。必要なのは2D配列で、最初の要素はCSTRINGへのポインターであり、2番目の要素はカウンターです。

これの目的は、スレッド番号に基づいてワードリストをスレッド化してスレッドに渡すことです。char wordlists [100] [10]のように定義されているかのように(スレッドごとに100ワードと10リスト1合計10)、最初にすべてのリストをファイルからのワードで埋めてから、特定のリストをに渡すことができます。処理するスレッド。スレッドがメインスレッドに結合すると、結合しているスレッドに関連する単語リストを補充し、新しい単語でスレッドを再起動します。

全体として、ポインターの2D配列を作成するための構文がわかりません(最初の要素ポインターは2番目にカウンターです)。また、特定のスレッドの単語が始まる配列アドレスだけを渡すこともできるので、1000単語の2D配列全体を渡す必要はありませんか?(そのため、スレッド100ワードが格納されている開始アドレスを渡すことができます)

助けてくれてありがとう!

編集::スレッドを介してビッグワードファイルを処理する同様の方法についてより良い提案がある場合は、より多くのアイデアを受け入れるように提案してください。

4

3 に答える 3

0

ポインタの2D配列を宣言するには(入力するにはT):

T *array[width][height];

また、配列アドレス[...]だけを渡すこともできるので、1000ワードの2D配列全体を渡す必要はありませんか?

あなたは他に何もできませんでした。Cでは、配列は値ではなく常にポインターによって渡されます。

于 2013-01-02T17:59:30.233 に答える
0

ポインタの2D配列を作成するための構文がわかりません

*よりも優先順位が低くなり[]ます。したがって、wordlistsはへのポインタの配列の配列ですchar

char *wordlists[100][10];
于 2013-01-02T17:56:46.240 に答える
0

comp.lang.c FAQ(の関連部分ですが、全体をお勧めします)を読むことでおそらく恩恵を受けることができます。

これはおそらくC(およびCのような言語)に触れるすべての人にとって必須の読み取りであり、信じられないほど目を見張るものがあります(特に、未定義のステートメントの動作、nullポインターの値と使用、そしてあなたの場合はポインターとポインターの配列について) 。

于 2013-01-02T18:06:01.523 に答える