ページ 1 / 1
C言語の配列はなぜ静的配列?
Posted: 2010年7月08日(木) 18:03
by けえぼお
前回の質問(
http://www.play21.jp/board/formz.cgi?ac ... 1278506084oca 関数を教えていただきました。
調べてみると「スタックにメモリを割り当て」る関数らしいんですが、スタックに動的に割り当てられるならCの配列が静的配列である必要がないように思うのですが…。
Re:C言語の配列はなぜ静的配列?
Posted: 2010年7月08日(木) 20:19
by 組木紙織
_allocaは標準ライブラリの中に入っていなかったと思うのですが、、、
それは置いといて、
C99は確か言語仕様でautoで動的(実行時決定)な配列を使えたはずです。
Re:C言語の配列はなぜ静的配列?
Posted: 2010年7月08日(木) 23:12
by けえぼお
>> _allocaは標準ライブラリの中に入っていなかったと思うのですが、、、
ドキュメントには _alloca(CRT) とあるのですが、
CRT = Cランタイムライブラリ = 標準Cライブラリ ではないのでしょうか?
自分の理解が足りないだけのような気もしますが…
>> C99は確か言語仕様でautoで動的(実行時決定)な配列を使えたはずです。
調べてみましたがよくわかりませんでした...orz
わざわざ答えてもらったのにすみません。
でも言語仕様で動的配列を使えるとのことですので、疑問は解決できました。
どうもありがとうございました!
Re:C言語の配列はなぜ静的配列?
Posted: 2010年7月08日(木) 23:34
by 組木紙織
補足です。
_allocaはコンパイラの開発会社(この場合はマイクロソフト)が勝手に用意した関数です。
Cの標準ライブラリにははいっていません。
C99はC言語の最新の規格で、現在対応しているコンパイラと対応していないコンパイラが
あるので気をつけてください。
古い規格の場合動的配列はmalloc(),free()で扱うしかないですね。
http://seclan.dll.jp/c99d/c99d04.htm#dt19990719
Re:C言語の配列はなぜ静的配列?
Posted: 2010年7月08日(木) 23:57
by ISLe
gcc拡張って積極的には使われてないんですかね?
動的配列以外にもC99の新機能のいくつかはgcc拡張で以前から使えた機能が多いですよね。
Re:C言語の配列はなぜ静的配列?
Posted: 2010年7月09日(金) 20:29
by けえぼお
組木紙織さん、ご指摘ありがとうございました。
自分の理解不足でご迷惑をおかけしました。
そういえば、 _ がつく関数は標準規格のではないと聞いたことがある気がします。
それであってるんでしょうか?
画像が表示されません
Posted: 2010年7月11日(日) 14:35
by ぷにょ
以下のコードで画像を表示できません。解決方法をお願いします。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
LoadGraphScreen( 0 , 0 , "char.png" , TRUE ) ;
WaitKey() ; // 結果を見るためにキー待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
Re:画像が表示されません
Posted: 2010年7月11日(日) 15:03
by へろりくしょん
DXライブラリは触ったことが無いので、全く解りませんが。
画像へのパスは通ってますか。
それと、新規の質問はスレッドを立てた方がいいですよ。