検索結果 3 件

by 4700
4年前
フォーラム: C言語何でも質問掲示板
トピック: 任意のタイミング,サイズで配列を作る方法
返信数: 8
閲覧数: 7358

Re: 任意のタイミング,サイズで配列を作る方法

みけCATさん、 回答ありがとうございます どうしてそのようなことをしたいのですか? 質問を受けて、長々とやりたいことを書き綴って整理しておりましたら、今気づきました。 この構造体が次回呼び出し時まで値を保持しておく必要は無く、 ただ単に確保と破棄を繰り返すのが、「基本グローバル変数しか存在しないような言語」を触っていたせいで気持ち悪かっただけで、 呼び出しのたびに確保する形でも良かったのかも知れません。 確かに、問題は私の思い込みや設計だと思います。 それらを他人に教えて貰う方法について心当たりがなく、c言語の問題まで自分で絞って質問しました。 よく考えず質問してしまいすみませんでした。 回...
by 4700
4年前
フォーラム: C言語何でも質問掲示板
トピック: 任意のタイミング,サイズで配列を作る方法
返信数: 8
閲覧数: 7358

Re: 任意のタイミング,サイズで配列を作る方法

回答ありがとうございます。 すみません、あまり知識がないので、これがそういう方向の話なのか分かりません・・・ 「メモリを動的に確保する」感じの話ではあると思います。 Cを使いたいので、mallocが使えそうだったので使ってみました。 #include <stdlib.h> void main(){return;} void f (int n) { static int* a; a = (int*)malloc(sizeof(int)*n); free(a); return; } 無事コンパイル通りました。ありがとうございます。 しかし、なんだか大げさな感じがしてしまいます。 何と言えばいいか分...
by 4700
4年前
フォーラム: C言語何でも質問掲示板
トピック: 任意のタイミング,サイズで配列を作る方法
返信数: 8
閲覧数: 7358

任意のタイミング,サイズで配列を作る方法

gcc 6.3.0
質問です。
呼び出された時に、要素数nの配列を確保して破棄しない(static付けた時のように)関数を作りたいんですけど、以下のようにすると、

コード:

void main(){return;}
void f (int n)
{
	static int a[n];
	return;
}
error: storage size of 'a' isn't constant
サイズが不明でエラーになるみたいです。
任意のサイズとタイミングで確保できれば、別に関数である必要はないのですが、
なんとかこれを実装する方法はありますか。

詳細検索ページへ移動する