
No.2ベストアンサー
- 回答日時:
全ての要素が0で初期化された配列を確保したいのであれば、calloc()を使うというのはどうでしょうか? 上記のコードより速いという保証はありませんが。
#include <stdlib.h>
int *Xi = (int *)calloc(256, sizeof(int));
配列が不要になった時点でfree(Xi)するのをお忘れなく。また、初期値が0以外の場合にはこの手は使えません。
No.6
- 回答日時:
処理系不明のままでは、まともな回答は得にくいと思います。
インタープリタの場合はループで記述すると十分遅いと思いますし、そこまでいかなくても、(たとえ今時のものでも)8ビットマイコンなんかでは高速とはいいがたいでしょうね(かといって、代案があるかどうかはハードウェアしだい)。
というわけで、処理系を補足してください。
No.4
- 回答日時:
Cの仕様の範囲では、
int Xi[256] = {0};
が最速になる可能性が一番高いはずです。
callocは非常に遅いので論外です。
もっと速くということであれば、アセンブリ言語でアーキテクチャに依存したコードを書く必要があります。
No.3
- 回答日時:
int Xi[256] = {0};
で全要素が0で初期化されます。
(初期化子の要素数が、配列の要素数よりも少ない場合、
残りの要素は全て0で初期化されるため。)
速度はどうか知らないけど書くのは楽。
速度に関してはコンパイラの最適化が効いてるなら特にどうこうする必要はないでしょう。
No.1
- 回答日時:
最近のコンパイラであれば、おそらく、そのままで最速なコードが生成されると思います。
下手になんかしないほうが多分速い。もし、本当にコンパイラが生成するコードよりも速い方法がほしいとなると、これはもう、初期化の部分だけではなくて、実際に配列を使う部分のアルゴリズムも一緒に考えて、配列の一部をレジスタにもつとか、かなりトリッキーなことをすることになると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数でEmpty値を設定する方法。
-
動的配列が存在(要素が有る)か...
-
VBで作った乱数を一度も重複さ...
-
EXCEL VBA で、0から?1から?
-
C言語 重複しない4ケタの乱数...
-
ジャグ配列とは
-
パソコンキーボードで時分秒を...
-
五目並べのプログラムを配列と...
-
VB.net 引数で配列変数を渡す際...
-
2次元配列のマスを数える方法...
-
配列の要素数を超えた参照のコ...
-
int型配列の一括初期化
-
キーボードのQWERTY配列の本当...
-
javaプログラムについて
-
C#の質問
-
Sourcearrayの読み方を教えてく...
-
ボールの衝突 (VB.net)
-
多次元配列
-
連想配列じゃない配列は何て呼...
-
2次元配列の、黒いマス目で囲...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動的配列が存在(要素が有る)か...
-
IF関数でEmpty値を設定する方法。
-
EXCEL VBA で、0から?1から?
-
VBAで配列の計算
-
VB.net 引数で配列変数を渡す際...
-
パソコンキーボードで時分秒を...
-
変数を動的に作るには?
-
VBでbyte配列型のインスタンス...
-
VBで作った乱数を一度も重複さ...
-
Excel VBAで配列の途中から(X)M...
-
配列の要素数を超えた参照のコ...
-
複数のテキストボックスに同じ...
-
ラジオボタンのチェックをEnter...
-
C言語 重複しない4ケタの乱数...
-
排列と配列の漢字の使い分けは
-
For文と配列
-
Visual C++ でコントロールを...
-
C++、クラスメンバの構造体配列...
-
遅延バインディングを使用でき...
-
int型配列の一括初期化
おすすめ情報