C言語の配列はなぜ静的配列?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
けえぼお

C言語の配列はなぜ静的配列?

#1

投稿記事 by けえぼお » 15年前

前回の質問(http://www.play21.jp/board/formz.cgi?ac ... 1278506084oca 関数を教えていただきました。
調べてみると「スタックにメモリを割り当て」る関数らしいんですが、スタックに動的に割り当てられるならCの配列が静的配列である必要がないように思うのですが…。

組木紙織

Re:C言語の配列はなぜ静的配列?

#2

投稿記事 by 組木紙織 » 15年前

_allocaは標準ライブラリの中に入っていなかったと思うのですが、、、

それは置いといて、
C99は確か言語仕様でautoで動的(実行時決定)な配列を使えたはずです。

けえぼお

Re:C言語の配列はなぜ静的配列?

#3

投稿記事 by けえぼお » 15年前

>> _allocaは標準ライブラリの中に入っていなかったと思うのですが、、、
ドキュメントには _alloca(CRT) とあるのですが、
CRT = Cランタイムライブラリ = 標準Cライブラリ ではないのでしょうか?
自分の理解が足りないだけのような気もしますが…

>> C99は確か言語仕様でautoで動的(実行時決定)な配列を使えたはずです。
調べてみましたがよくわかりませんでした...orz
わざわざ答えてもらったのにすみません。

でも言語仕様で動的配列を使えるとのことですので、疑問は解決できました。
どうもありがとうございました!

組木紙織

Re:C言語の配列はなぜ静的配列?

#4

投稿記事 by 組木紙織 » 15年前

補足です。

_allocaはコンパイラの開発会社(この場合はマイクロソフト)が勝手に用意した関数です。
Cの標準ライブラリにははいっていません。


C99はC言語の最新の規格で、現在対応しているコンパイラと対応していないコンパイラが
あるので気をつけてください。
古い規格の場合動的配列はmalloc(),free()で扱うしかないですね。

http://seclan.dll.jp/c99d/c99d04.htm#dt19990719

ISLe

Re:C言語の配列はなぜ静的配列?

#5

投稿記事 by ISLe » 15年前

gcc拡張って積極的には使われてないんですかね?

動的配列以外にもC99の新機能のいくつかはgcc拡張で以前から使えた機能が多いですよね。

けえぼお

Re:C言語の配列はなぜ静的配列?

#6

投稿記事 by けえぼお » 15年前

組木紙織さん、ご指摘ありがとうございました。
自分の理解不足でご迷惑をおかけしました。

そういえば、 _ がつく関数は標準規格のではないと聞いたことがある気がします。
それであってるんでしょうか?

ぷにょ

画像が表示されません

#7

投稿記事 by ぷにょ » 15年前

以下のコードで画像を表示できません。解決方法をお願いします。

#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:画像が表示されません

#8

投稿記事 by へろりくしょん » 15年前

DXライブラリは触ったことが無いので、全く解りませんが。

画像へのパスは通ってますか。


それと、新規の質問はスレッドを立てた方がいいですよ。

閉鎖

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