• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UNIX C メモリ領域)

UNIX C メモリ領域

このQ&Aのポイント
  • メモリ領域に展開されるデータが0番地ではなく1番地に展開されます。
  • マスタファイルの重複している旧カードの件数を取得し、それぞれの旧カードに該当するレコードを取得する処理が行われます。
  • GetCountGroup関数で重複している旧カードの件数を取得し、GetGroupIcids関数で旧カードを展開し、GetRecordIcids関数でレコードを取得します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yukimican
  • ベストアンサー率70% (112/159)
回答No.2

precord[0]からデータを入れるつもりでソースを書いたのなら、異常動作です。 どこかで書き方を間違っています。 indexというのは[1]のことです。  1番目のデータ→precord[0]→index=0, count=1  2番目のデータ→precord[1]→index=1, count=2  3番目のデータ→precord[2]→index=2, count=3 という関係になりますよね。 No.1で言いたかったのは、関数のどこかのループ処理で precord[0]からではなく、precord[1]から始めている箇所があるのではないかということです。 これ以上のことは、関数の中身を見ないとわかりません。 自分で調べるのでしたら、デバッガでステップ実行するなり、 printf関数で変数の値を表示するようにして どこまで正常に動作しているかを確認してみてください。

yano-kouichi
質問者

補足

ありがとうございます。

その他の回答 (1)

  • yukimican
  • ベストアンサー率70% (112/159)
回答No.1

関数の詳細がわからないと何とも言えませんが、 「0番地からでなく、1番地に」という現象から推測すると どこかでcountとindexを混同している可能性があります。 countは1から始まりますが、indexは0からです(count-1)。 ソースコードのforループや変数の初期化の辺りを良く見直してみてください。

yano-kouichi
質問者

補足

precord[1]からデータがはいることは、正常な動作になるということでしょうか?。INDEXというのは、[1]のことですよね。

関連するQ&A