0

みなさん、こんにちは。

私が理解できないある種の大きな問題があります。ポインターの多次元配列を作成します。

char *listA[5000][2];

特定の条件では、特定の文字列がこの配列内に保存されるようにします。これらは、単純な変数内の通常の文字列と、文字列の配列内に含まれる別の文字列です。

 listA[j][0]=strMix;
 listA[j][1]=ingredients[i];
 j++;

もちろん、 jは行であり、追加するたびに増加します。

結果は、行ごとに 2 つの列を含む配列である必要があります。1 つは成分で、もう 1 つは相対的な strMix です。

問題は、この多次元配列を読み込もうとすると、次のようになることです。

printf( "%s", listA[0][1]); // the ingredient

は常に正しいですが、次のとおりです。

printf( "%s", listA[0][0]); // the strMix code

は常に正しくありません。正確には、すべての行について、最後に読み取った strMix を読み取ります。

列の順序を変更しようとしましたが、驚いたことに、問題は常に strMix にあり、 components [i]文字列にはありません。

strMix 列は、listA 内に記述してすぐに読み取った場合にのみ正しいです。もちろん、私は言うでしょう。

例えば:

printf("Current: %s vs Previously: %s",lista[j][0], lista[j-1][0]);

それらはすべての j について同じであり、最後に読み取られた strMix と同じです。

メモリやポインターの多次元配列について何かアイデアがあれば、私が見逃しているだけです。アドバイスをいただければ幸いです。

いつもありがとうございます。fdt。

4

2 に答える 2