0

一連の int 値を含むテキスト ファイルがあります。最初の 2 行には L と C の値があり、次にスペースが続きます。その後、スペースで区切られた int 値を持つ行のグループが続きます。最初の値は後に続く数字で作成したい配列。このグループの後に、前のグループから空行で区切られた別のグループが続きます。これは同じ構成ですが、別のグループまたは配列に保存したいと考えています。このファイルを読み込んで L と C の値を保存するにはどうすればよいですか? 次の 2 つのグループについては、行ごとに配列を作成するにはどうすればよいですか?

元:

5     
5     

1 2      
1 4    
1 4    
2 5 6    
3 1 4 2       

3 5 1 1      
1 2      
2 3 2           
1 2              
1 3             
4

2 に答える 2

1

ポインターを配列として使用できることをご存知ですか? そして、その結果、ポインタからポインタへのポインタを配列の配列として使用できることがわかります。そして、これらが各グループに 1 つずつ、合計 2 つ必要です。

このようなもの:

int **arrays[2];  /* Array of two pointer-to-pointers */

最初の 2 つの数値を読み取った後、第 2 レベルの配列を割り当てることができます。

arrays[0] = malloc(sizeof(int *) * first_number);  /* Allocate for first group */

次に、グループの各行を読んだ後、2 番目のレベルを割り当てることができます。

arrays[0][i] = malloc(sizeof(int) * size_from_line);

そして最後に、数値を適切なサブ配列に入れます。

arrays[0][i][j] = some_number;

うまくいけば、これはそれを実装するのに十分な情報を提供するはずです。

注:freeこのデータをリロードする必要がある場合は、割り当てられたすべてのデータを忘れないでください。

于 2013-05-04T23:53:07.217 に答える