Qiita 7 - キータぞ、来たぞ、キータだぞー (768レス)
上下前次1-新
322: 2025/10/14(火)21:04 ID:ZulSE3F6(1) AAS
>>321
違いは簡単
静的メモリ配置 ←アドレス固定
動的メモリ配置 ←アドレス変動
static宣言すると静的にメモリ領域が確保されてアドレスが固定になる
実例コード
void foo() {
static int a1[] = {1, 2, 3};
int a2[] = {1, 2, 3};
printf("アドレス固定 a1: %p\n", &a1);
省10
323: 2025/10/15(水)01:32 ID:F/Bk7x58(1) AAS
>>316
>>321
staticの意味は「静的な」
staticを付けないと動的に毎回確保されることくらい分かりそうなものだが
324(1): 2025/10/15(水)02:42 ID:tBMKGpTr(1) AAS
なんてことだstatic宣言した変数が共有ライブラリの中だとアドレスが変わることがあるゾ!
325: 2025/10/15(水)02:49 ID:LnEbzNuN(1) AAS
>>324
リンク時に変わることはあっても
実行中にアドレスが変わることはない
326: 2025/10/15(水)18:27 ID:V1g0382z(1) AAS
cの静的動的はサイズが実行時に定まるか否かってことじゃないん?
staticかどうかはcプログラマにとっては別の感心事で
メモリの動静を語るときはそうだったと思うけど
俺の知ってる限り
staticつけてないローカルな配列のことを動的な確保って言ってる人見たこと無いわ
327: 2025/10/15(水)19:23 ID:MHowvYgL(1) AAS
Grokに訊いたら非標準のallocaやC99のVLAは動的確保に含まれる場合があるそうだ。
328(1): 2025/10/15(水)19:43 ID:zk4Ust74(1) AAS
配列やベクタやリストやスライスなど、言語によって様々な呼び方や実装が異なるもの、全てに共通の必須な仕組みとして、
総称としての配列の範囲チェックの話をしていて、そのまま特定の言語に関係なくこの話の流れでいいんだよな
>>316
>>配列は静的メモリ確保なのに動的メモリ確保とごっちゃになっている素人w
静的と動的は様々な対象に用いられるが、今回は静的メモリ確保
これをアドレスが変わらないという解釈でも、いわゆるセグメントのうち静的領域に確保するという意味でも同じ
特定の言語の話ではないが、例えばC言語なら静的宣言(static宣言)をする変数がこれに該当する
動的メモリ領域は毎回アドレスが変わるという意味でも、何かをするたびにメモリ空間から領域を確保する意味でも同じ
ただし二つに分かれて、関数呼び出しのたびに領域が確保されて関数から去ると無効になるものと、関数呼び出しのタイミングと関係なく確保することで関数を去っても有効になるもの、それら二つの異なる性質のものに分かれる
いわゆるセグメント領域としては、前者はスタック領域に確保されて後者はヒープ領域に確保される
省1
329(1): 2025/10/15(水)22:57 ID:dwkfuJij(1/5) AAS
>>317
コレクションという言葉を知らないのか?
配列は連続したメモリ領域だぞ?
330(1): 2025/10/15(水)23:01 ID:dwkfuJij(2/5) AAS
>>320
あのさ、関数でも関数を呼び出す方でも実行時にメモリを確保するんだよ?
実行中にメモリを確保することは、また別の話。
331(1): 2025/10/15(水)23:03 ID:dwkfuJij(3/5) AAS
>>328
CPUとOSレベルで別のプロセスが使っているメモリ領域にアクセスできないようになっていることを知らない高齢者か?
進化を知らずに大昔の仕様で語るのはやめろ。
332(1): 2025/10/15(水)23:14 ID:1UpfUBnV(1/2) AAS
連投が全て的外れでワロタ
>>329
元レスはコレクションとも連続領域とも全く無関係な話だな
>>330
区別ついてないのかよ
静的な変数が置かれる静的領域は関数呼び出しと無関係に最初から存在するため遅くとも実行開始時点でアドレスが確定する
>>331
元レスに別プロセスの話もアクセス権もどこにも書かれてなく無関係
そもそもプロセス間の共有メモリがある
333(2): 2025/10/15(水)23:26 ID:dwkfuJij(4/5) AAS
>>332
元はメモリのアドレスをなめる行為の話だぞ?
飛び飛びのメモリ領域のことを一般的には配列とは呼ばない。コレクションの実装は飛び飛びのこともある。
334: 2025/10/15(水)23:27 ID:dwkfuJij(5/5) AAS
このスレはキータだったなw
変なやつしかいない
335: 2025/10/15(水)23:37 ID:1UpfUBnV(2/2) AAS
>>333
コレクションの話なんかどこにも出てきていないのに妄想で幻で見えてるのか?
336: 2025/10/15(水)23:46 ID:NrKjLOWm(1) AAS
>>333
飛び飛びのメモリ領域の話をしてる人はいないと思いますよ
どうして突然そんなことを言い出すのですか?
337: 2025/10/18(土)11:07 ID:bVsQMdfb(1/3) AAS
『浮動小数点数に非常に小さい値を加えるとどうなるか?float型の精度限界を調べた』
知識がないところでFLT_EPSILONに近い概念を独自に発見しようとしてるのは偉いのだが、deltafの初期値を0.1fで始めてるのが惜しい。1.0fにしてればFLT_EPSILONの1/2が求まる筈。
338(1): 2025/10/18(土)12:49 ID:bVsQMdfb(2/3) AAS
>>279
> オーバーフローチェックのコストはとんでもなく高いんだよ。
> 劇的に遅くなることが判っているよ。
簡単なコードで確認してみた。
外部リンク:wandbox.org
339: 2025/10/18(土)13:32 ID:qBI4ZXTO(1) AAS
>>338 は32bitと大き目で更にoverflowしたらループを抜けるだけで代わりの値を代入したりしてない
unsigned charの8bit演算でoverflowしたら255にして
何回か毎に大きな値を引く(underflowは0)にする処理もあわせると分岐予測がある程度阻害されるのでは
(>>279 の具体的根拠は知らないけど)
340: 2025/10/18(土)13:44 ID:NqvbaKoR(1) AAS
>32bitと大き目で更にoverflowしたらループを抜けるだけで代わりの値を代入したりしてない
1から4を1億回足してるだけだからオーバーフローは発生しない。>>279が問題にしてるのはオーバーフローチェックのコストでありオーバーフローするかどうかは関係がない。
341: 2025/10/18(土)19:06 ID:ETv7F4p1(1) AAS
実際のプログラムには足し算など無数にあるから分岐が無数に増えて分岐予測テーブルが溢れそう
上下前次1-新書関写板覧索設栞歴
あと 427 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.011s