ポインタを使って配列の値を関数に渡せません

解決


願:脱初心者  2006-08-10 01:56:49  No: 62695

コーディング上の問題があって困っています。
問題点がなんなのか分らないでいます。

呼び出し先:
----
int i,j,

ack_sender,

sender_no;

 /* Check Sender         */
for (i=0; i<vl; i=i*stride+SND_ID)
    printf ("vl=%d, wire_wire[%d] = %d\n", vl, i, *wire_wires);

    sender_no = 0;
    for (i=0; i<vl; i= i++)
    {
         ack_sender = flag_pick(wire_wires[i], 32, 0);

         if (ack_sender == ASSERT)
              sender_no = i;
    }
    if (delay_eval_req == ASSERT && delay_model == FASTEST_MODEL)
    {
         for (i=sender_no; i>=0; i--)
             for (j=0; j<op_width; j++)
                 wire_wires[i + op_width * j] = wire_wires[i + 1 +  op_width*j];

         for (i=sender_no; i<vl; i++)
             for (j=0; j<op_width; j++)
                 wire_wires[i - 1 + op_width * j] = wire_wires[i + op_width*j];

     }

----
について2次元配列:int wire_id_assign[SEQ_SIZE][6]; (SEQ_SIZE = 4)

をack_sender==1の配列要素から列の内容を左の右行へコピーしていくプログラムです。

をwire_id_assign[0][SND_ID]  (SND_ID=5)がアサートされているのをチェックしその要素(列)からコピーしていきます。

以下のような使い方をしていますが、うまくいきません。
呼び出し元:
printf ("wire_id_assign[0][SND_ID] = %d \n", wire_id_assign[0][SND_ID]);
*(SND_ID=5)

for (i = 0; i <SEQ_SIZE; i++)
    delay_bus_model1(1, &wire_id_assign, 0, 6 *i, 6, 32, BIT_WIDTH, FASTEST_MODEL);

よろしくお願いします。


願:脱初心者  2006-08-10 02:11:16  No: 62696

3つも送信してしまいました。
大変不愉快なことをしてしまったと思います。
すみませんでした。


願:脱初心者  2006-08-10 02:45:45  No: 62697

printf ("vl=%d, wire_wire[%d] = %d\n", vl, i, *wire_wires);←
の時点で値が変わっているので、ポインタの値私がうまくいってないと思うのですが、チェックする方法はありませんか(前後でのprintf以外)?


願:脱初心者  2006-08-10 03:17:49  No: 62698

ダンプリストを吐かせてみたらきちんとを値がわたっていました。
printfで見るときに誤ったインデックスを利用していました。
ご迷惑をおかけしました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加