コーディング上の問題があって困っています。
問題点がなんなのか分らないでいます。
呼び出し先:
----
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);
よろしくお願いします。
3つも送信してしまいました。
大変不愉快なことをしてしまったと思います。
すみませんでした。
printf ("vl=%d, wire_wire[%d] = %d\n", vl, i, *wire_wires);←
の時点で値が変わっているので、ポインタの値私がうまくいってないと思うのですが、チェックする方法はありませんか(前後でのprintf以外)?
ダンプリストを吐かせてみたらきちんとを値がわたっていました。
printfで見るときに誤ったインデックスを利用していました。
ご迷惑をおかけしました。
ツイート | ![]() |