ポインタによる配列の指定 実行しても出力されない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
コハク
記事: 8
登録日時: 9年前

ポインタによる配列の指定 実行しても出力されない

#1

投稿記事 by コハク » 9年前

コード:

      for(int q=0;q<rule_n;q++){//rule_n=1296
	cout<<"&&&"<<endl;
	if((*(rule_old+p))[q]==0){continue;}
	cout<<"?"<<endl;
        count++;
      }
この処理を出力すると
&&&
&&&
?
と出力されます.
このループ以前で問題の配列を出力すると

コード:

cout<<(*(rule_old+p))[1]<<endl;
結果は
1
と出力されました.
ポインタの使い方が悪いのでしょうか?
出来るだけ処理を軽くしたいので, 配列で書き直さずにすむ方法はないでしょうか?

アバター
コハク
記事: 8
登録日時: 9年前

Re: ポインタによる配列の指定 実行しても出力されない

#2

投稿記事 by コハク » 9年前

すみません.
pのループが抜けていました

コード:

for(int p=0;p<N;p++){
    for(int q=0;q<rule_n;q++){//rule_n=1296
        cout<<"&&&"<<endl;
        if((*(rule_old+p))[q]==0){continue;}
        cout<<"?"<<endl;
        count++;
    }
}

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: ポインタによる配列の指定 実行しても出力されない

#3

投稿記事 by みけCAT » 9年前

意味がよくわかりません。
出力するプログラムを書いていないから出力されないのではないでしょうか?
そのままコンパイルして実行できるソースコードと、期待する出力を提示してください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
コハク
記事: 8
登録日時: 9年前

Re: ポインタによる配列の指定 実行しても出力されない

#4

投稿記事 by コハク » 9年前

すみません.
解決しました.
このループで初期化していたところがあったのですが,

コード:

(*(rule_old+p))[q]=0
としなければいけないところを

コード:

*(rule_old+p)=0
と書いていたためにループが回らなかったようです.

閉鎖

“C言語何でも質問掲示板” へ戻る