!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 155
https://mevius.5ch.net/test/read.cgi/tech/1589120427/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C言語なら俺に聞け 156
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9bb7-/QqT)
2020/09/28(月) 14:41:30.00ID:QxfbhGyV0345デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 20:10:26.40ID:o4C6fSAI0 新しい規格は新しい器でどうぞ
346デフォルトの名無しさん (ワッチョイ 277f-WScj)
2020/12/11(金) 21:31:36.15ID:7UnfkYH50 >>343
賛成
賛成
347デフォルトの名無しさん (ワッチョイ df01-1sNk)
2020/12/11(金) 23:01:06.49ID:u7x51CWk0348はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-orE1)
2020/12/12(土) 09:10:37.90ID:UUApGKPR0 C21 は 2021 年に予定されてるけど、正式発効はいつものように遅くなるかなぁ。
次スレには間に合わなさそう。
細かいところで C++ に追従しているのがありがたい。
次スレには間に合わなさそう。
細かいところで C++ に追従しているのがありがたい。
349デフォルトの名無しさん (ワッチョイ 7fb6-orE1)
2020/12/12(土) 20:24:51.48ID:+E0Q9Nw10 テンプレ直さなきゃな
現行規格はC11ではなくC18だ
現行規格はC11ではなくC18だ
350デフォルトの名無しさん (ワッチョイ a701-RxlK)
2020/12/13(日) 02:41:25.02ID:3BYpAKtx0 1スレの1だけど、みんな元気だなw
351デフォルトの名無しさん (ワッチョイ 277f-WScj)
2020/12/13(日) 02:52:26.43ID:dBxf4Vg90 わー、凄いですねー(棒
352デフォルトの名無しさん (ワッチョイ 7eb6-FZ4g)
2020/12/17(木) 09:46:05.20ID:4VSV+Zch0353デフォルトの名無しさん (ワッチョイ 1a44-7qKd)
2020/12/17(木) 13:31:23.27ID:AFn1O2bR0 おれのハード屋の父親もre2cが吐いたようなコードを書いてた記憶がある
354デフォルトの名無しさん (ワッチョイ c38c-Kyli)
2020/12/25(金) 09:10:24.53ID:9Fso0P460 int a[6];
と
int *a = malloc(6 * sizeof(int));
の違いは何ですか?
と
int *a = malloc(6 * sizeof(int));
の違いは何ですか?
355デフォルトの名無しさん (ワッチョイ c3ab-80jV)
2020/12/25(金) 11:15:33.22ID:4TR/yfFq0 >>354
記憶域期間 storage duration が違う
void func()
{
int a[6];
} //ここで自動開放 automatic storage duration
int a[6]; //最後まで解放されない static storage duration
mallocは当たり前だがfreeで手動開放
C++にはdynamic storage durationというのがあるが
Cでは言語自体にそのような概念はなく
malloc/freeというアプリが提供する機能ということになっている
記憶域期間 storage duration が違う
void func()
{
int a[6];
} //ここで自動開放 automatic storage duration
int a[6]; //最後まで解放されない static storage duration
mallocは当たり前だがfreeで手動開放
C++にはdynamic storage durationというのがあるが
Cでは言語自体にそのような概念はなく
malloc/freeというアプリが提供する機能ということになっている
356はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b3e-80jV)
2020/12/25(金) 11:18:10.08ID:My/Ukrd40 >>354
違うものを持ち出して何が違うかと問われても困るんやが……。
背景を全部説明するとだいぶん長くなるので。
とりあえず結果的に出来る配列オブジェクトを比較するならオブジェクトの生存期間 (lifetime) が違う。
前者は自動記憶域期間、後者は割り付け記憶域期間という分類になる。
変数 a の違いという意味では前者の型は int[6] で後者は int* ということになる。
ただし配列は暗黙の型変換でそれの先頭要素を指すポインタになるので、
かなり共通した記法で扱える。
違うものを持ち出して何が違うかと問われても困るんやが……。
背景を全部説明するとだいぶん長くなるので。
とりあえず結果的に出来る配列オブジェクトを比較するならオブジェクトの生存期間 (lifetime) が違う。
前者は自動記憶域期間、後者は割り付け記憶域期間という分類になる。
変数 a の違いという意味では前者の型は int[6] で後者は int* ということになる。
ただし配列は暗黙の型変換でそれの先頭要素を指すポインタになるので、
かなり共通した記法で扱える。
357デフォルトの名無しさん (ワッチョイ c3ab-80jV)
2020/12/25(金) 11:29:13.76ID:4TR/yfFq0 字が違うことくらい言わんでも解っとるやろ
int a[6]; は sizeof a / sizeof a[0] でサイズを取得できるが
mallocで割り付けたメモリはサイズを聞けず自分で管理せねばならない
int a[6]; は sizeof a / sizeof a[0] でサイズを取得できるが
mallocで割り付けたメモリはサイズを聞けず自分で管理せねばならない
358デフォルトの名無しさん (ワントンキン MM1f-OG+0)
2020/12/25(金) 12:31:04.53ID:0FtKncKUM 目から鱗どころか、天が落ちるぐらい面白い説明ができないのか。
無芸な奴らだ。
無芸な奴らだ。
359デフォルトの名無しさん (ワッチョイ af69-ass7)
2020/12/25(金) 12:39:14.80ID:3NwCUk3p0 ポインタ int *p; はインクリメント可能で p++ は合法
配列 int a[6]; はインクリメント不可能で a++ はエラーになる
配列 int a[6]; はインクリメント不可能で a++ はエラーになる
360デフォルトの名無しさん (スプッッ Sd13-txbM)
2020/12/25(金) 12:51:59.76ID:D8aGfpPud >>358に期待
361デフォルトの名無しさん (ワッチョイ c38c-Kyli)
2020/12/25(金) 13:23:43.17ID:9Fso0P460 >>354
メモリ配置の連続性はどちらも保障されていることで良いですか?
メモリ配置の連続性はどちらも保障されていることで良いですか?
362デフォルトの名無しさん (ワッチョイ af69-ass7)
2020/12/25(金) 14:43:22.97ID:3NwCUk3p0 配列は先頭から確保された領域の次のところを指せるまでは連続性が保障されてるんじゃなかったかな
規格あたるのはまかせた
(malloc の戻りは… 配列に準じるように実装されてそうではある)
規格あたるのはまかせた
(malloc の戻りは… 配列に準じるように実装されてそうではある)
363デフォルトの名無しさん (ワッチョイ ab7f-R4Cp)
2020/12/25(金) 14:54:43.85ID:qJluI3Ne0364デフォルトの名無しさん (ワッチョイ 1744-crlN)
2020/12/25(金) 15:09:30.51ID:2V7uRClp0 int a[6];はローカル変数ならスタック領域に確保、グローバル変数や
int *a = malloc(6 * sizeof(int));はヒープ領域に確保
でいい?
int *a = malloc(6 * sizeof(int));はヒープ領域に確保
でいい?
365デフォルトの名無しさん (ワッチョイ ab7f-R4Cp)
2020/12/25(金) 15:19:15.56ID:qJluI3Ne0 ダメ
グローバル変数はデータ領域とかbss領域とかいろいろ
グローバル変数はデータ領域とかbss領域とかいろいろ
366デフォルトの名無しさん (ワッチョイ d9da-crlN)
2020/12/25(金) 18:54:05.01ID:Tea3EQhG0 アドレス見ない, かつ定数だと何処にも領域取らない可能性まである
367デフォルトの名無しさん (ワッチョイ 7b52-txbM)
2020/12/25(金) 20:30:05.07ID:EiswCiht0 そんなこと言い出したら
ローカル変数だってスタックじゃないかもしれない
ローカル変数だってスタックじゃないかもしれない
368デフォルトの名無しさん (ワッチョイ 0b01-80jV)
2020/12/25(金) 20:39:01.52ID:MidTJiO80 どこにあるかよりどれだけ生きているかの生命期間が大事ね
369デフォルトの名無しさん (ワッチョイ 7b52-txbM)
2020/12/25(金) 21:22:39.71ID:EiswCiht0 速度も
370デフォルトの名無しさん (ワッチョイ 7b52-txbM)
2020/12/25(金) 21:23:50.85ID:EiswCiht0 生命期間も実際はC言語の文法通りじゃない
371デフォルトの名無しさん (ワッチョイ c3ab-80jV)
2020/12/26(土) 05:33:54.37ID:ekLZAtHZ0372デフォルトの名無しさん (ワッチョイ 7b52-txbM)
2020/12/26(土) 07:58:20.12ID:J4yOWW3+0 メモリ(DRAM)上は連続してるとは限らない
C言語上連続として扱えるというだけ
C言語上連続として扱えるというだけ
373デフォルトの名無しさん (ワッチョイ c3ab-80jV)
2020/12/26(土) 08:19:43.84ID:ekLZAtHZ0 それを言うなら仮想記憶だろ
ページ境界をまたぐ場合実記憶が連続しているとは限らない
その昔、ビット幅1bitのDRAMを8個パラってるのがあったけど
だから何って話
それ言い出したらメモリセルのキャパシタは隣接してるのか
ページ境界をまたぐ場合実記憶が連続しているとは限らない
その昔、ビット幅1bitのDRAMを8個パラってるのがあったけど
だから何って話
それ言い出したらメモリセルのキャパシタは隣接してるのか
374デフォルトの名無しさん (スップ Sddb-+VqV)
2020/12/26(土) 08:29:01.69ID:hSiLuJt/d スレタイの俺って誰ですか?
375デフォルトの名無しさん (ワッチョイ 1301-z4zq)
2020/12/26(土) 09:41:05.55ID:Mx49Y/J60376デフォルトの名無しさん (スプッッ Sdf3-txbM)
2020/12/26(土) 10:40:07.64ID:IfMxsBFTd >>366を言い出したからまねして見ただけ
377デフォルトの名無しさん (ワッチョイ fd63-Yke/)
2020/12/26(土) 12:41:26.45ID:0+ArpHnq0 実記憶も連続していない
時々意識不明になってるはず
ただ、その時の記憶がないだけ
時々意識不明になってるはず
ただ、その時の記憶がないだけ
378デフォルトの名無しさん (ワッチョイ 97d2-Yke/)
2020/12/28(月) 07:49:35.18ID:LdveQEJ20 面倒くさい、特異な、一般人には無縁の仕様を考慮するのが当たり前って感じに持ち出して否定するから初心者が逃げていく・・・。
379デフォルトの名無しさん (ワッチョイ c15f-80jV)
2020/12/28(月) 08:44:26.16ID:G7B9oAoL0 Cでプログラミングする時に領域の連続性を気にするのは果たして初心者なのだろうか(´・ω・`)
380デフォルトの名無しさん (アウアウウー Sa2f-ZzSF)
2020/12/28(月) 09:28:54.37ID:Q5Pp+CI0a Cでどのくらいできれば
実際役に立つレベルでしょうか?
実際役に立つレベルでしょうか?
381デフォルトの名無しさん (ワッチョイ 2352-BpKR)
2020/12/28(月) 09:45:26.51ID:ErVwTltE0 >>380
Cは言語仕様は小さいし重要なのはC自体が使えることではなくCを使ってその先で何をするかだから、C言語自体の基本的な仕様は完全にマスタしてるくらいでないとわざわざCを使う意味はないかなと思う
Cは言語仕様は小さいし重要なのはC自体が使えることではなくCを使ってその先で何をするかだから、C言語自体の基本的な仕様は完全にマスタしてるくらいでないとわざわざCを使う意味はないかなと思う
382デフォルトの名無しさん (ワッチョイ c38c-fXGD)
2020/12/29(火) 06:32:49.03ID:NanqjdNB0 iZ-Cのサンプルプログラム書き始めたので見てね。
https://sunasunax.hatenablog.com
https://sunasunax.hatenablog.com
383デフォルトの名無しさん (ワッチョイ 339a-rghk)
2020/12/29(火) 08:44:05.91ID:gCTQzk+K0384デフォルトの名無しさん (スップ Sd5a-sH+J)
2020/12/31(木) 07:46:12.94ID:mJm7tBE2d385デフォルトの名無しさん (ワッチョイ 1aab-7v9V)
2020/12/31(木) 07:51:45.82ID:/Sdg/sCQ0 mallocがNULLを返した場合は
割り付けが行われていないので
連続でも不連続でもない
割り付けが行われていないので
連続でも不連続でもない
386デフォルトの名無しさん (ワッチョイ 1aab-7v9V)
2020/12/31(木) 07:55:07.88ID:/Sdg/sCQ0 配列は連続領域が前提だから
E1[E2]が*(E1+E2)と等価となる
構造体も連続領域が前提だからこそ
配列にすることができる
不連続領域はリストや二分木などで
むろん言語自体が提供するのではなく
言語を使ってプログラマが構築するものだ
E1[E2]が*(E1+E2)と等価となる
構造体も連続領域が前提だからこそ
配列にすることができる
不連続領域はリストや二分木などで
むろん言語自体が提供するのではなく
言語を使ってプログラマが構築するものだ
387デフォルトの名無しさん (スップ Sd5a-sH+J)
2020/12/31(木) 12:57:09.96ID:mJm7tBE2d >>354
さらに言うなら
グローバル配列はコンパイル時に総数を決定しなければならないが
ローカル配列とmallocを使った場合は
最初に人数を入力し、それに合わせた数の名前配列を確保するような作り方ができる
ただしあまりにも大きいとローカルはスタックが溢れるしmallocはNULLを返す
さらに言うなら
グローバル配列はコンパイル時に総数を決定しなければならないが
ローカル配列とmallocを使った場合は
最初に人数を入力し、それに合わせた数の名前配列を確保するような作り方ができる
ただしあまりにも大きいとローカルはスタックが溢れるしmallocはNULLを返す
388デフォルトの名無しさん (ワッチョイ 1aab-7v9V)
2020/12/31(木) 18:54:42.23ID:/Sdg/sCQ0 mallocがNULLを返すのを実際に目撃したやついる?
malloc(2147483647)みたいなわざとらしい実験じゃなく実用で
malloc(2147483647)みたいなわざとらしい実験じゃなく実用で
389デフォルトの名無しさん (ワッチョイ b6e9-fuHL)
2020/12/31(木) 19:17:26.57ID:lvvsunYH0 いますよ。
390デフォルトの名無しさん (ワッチョイ 9a01-3t1F)
2020/12/31(木) 19:34:52.29ID:1/HNqY6i0 目撃とかはよーわからんけど実用プログラムだとアロケーション失敗でログ採ったりしてるからそういうログは見たことあるよ
391デフォルトの名無しさん (ワッチョイ 6301-7v9V)
2020/12/31(木) 20:41:44.50ID:+fx38Mty0 仮想記憶とか無いOSだとあっさり NULL 返してたな
392はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7f3e-7v9V)
2020/12/31(木) 23:27:44.16ID:xpX6Z+OE0 その質問を見てふと思ったことがあるんで便乗質問。
純粋にメモリが足りない (断片化で連続領域がないという場合を含む) という以外で malloc がエラーを返すことってある?
バッファオーバーランとかでめちゃくちゃに書き換えて管理の整合性が壊れたとかいうのは無視して
あくまでアプリケーションとしては C の仕様に則っているという前提で。
純粋にメモリが足りない (断片化で連続領域がないという場合を含む) という以外で malloc がエラーを返すことってある?
バッファオーバーランとかでめちゃくちゃに書き換えて管理の整合性が壊れたとかいうのは無視して
あくまでアプリケーションとしては C の仕様に則っているという前提で。
393デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/01(金) 00:09:31.83ID:E41TLeHr0 組み込みのちっちゃなマイコンなら普通
394デフォルトの名無しさん (ワッチョイ 9244-Iopg)
2021/01/01(金) 00:12:43.64ID:mwYi2zym0 マルチスレッドでヒープ領域が排他制御で使えないってのはありうる?
395デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/01(金) 00:20:48.66ID:E41TLeHr0 さあ
396デフォルトの名無しさん (ワッチョイ e95f-UAPS)
2021/01/01(金) 00:21:33.85ID:FRLcRufg0 吸い込んでくれ
397デフォルトの名無しさん (ワッチョイ 06e9-Zovn)
2021/01/01(金) 00:34:01.79ID:ufA+vsC20 >>392 メモリクォータ違反とか?
398蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 9901-ZUZB)
2021/01/01(金) 00:36:53.19ID:cLHhn9Dx0399デフォルトの名無しさん (ワッチョイ 625c-UAPS)
2021/01/01(金) 01:47:49.68ID:gWHeIT9l0 >388
Win98か2000の頃にあったわ。
1kバイトぐらいのを数万回(ファイル数)mallocやろうとしたらNULL返した。
XPで試したらエラー出なかったけど。
Win98か2000の頃にあったわ。
1kバイトぐらいのを数万回(ファイル数)mallocやろうとしたらNULL返した。
XPで試したらエラー出なかったけど。
400デフォルトの名無しさん (ワッチョイ dd25-vWRd)
2021/01/01(金) 05:55:11.31ID:ihSnxU6O0 逆にメモリ不足以外でNULL返すことってあるのか?
401デフォルトの名無しさん (ワッチョイ c2ab-UAPS)
2021/01/01(金) 06:25:04.97ID:DIBn3EXs0 malloc(0)とか
402デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/01(金) 12:48:57.97ID:U0IfpguFd malloc(負の数)も
403デフォルトの名無しさん (ワッチョイ 8101-UAPS)
2021/01/01(金) 15:48:48.11ID:1v7huw3N0 負数は単に符号なしで評価してとんでもなくでかい領域を要求してるだけ?
404デフォルトの名無しさん (ワッチョイ c2ab-UAPS)
2021/01/01(金) 21:47:45.23ID:DIBn3EXs0 だね
405デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/01(金) 22:22:16.08ID:wEvOepYPd sizeof(struct)*numとかごちゃごちゃ書くうちにうっかり0や負数になって…
というのはよくあった
というのはよくあった
406デフォルトの名無しさん (ワッチョイ dd5f-Jh9r)
2021/01/02(土) 11:42:56.15ID:QsP+Nlmq0 forループでunsignedで<0やって終わらないバグとかもあるな
407デフォルトの名無しさん (ワッチョイ edbd-wX28)
2021/01/03(日) 00:53:19.09ID:ERUOHNUN0408デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/03(日) 11:06:33.61ID:QdF5iATA0 >>407
正しい挙動 ≠ 想定した動作
正しい挙動 ≠ 想定した動作
409デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/03(日) 11:12:17.27ID:3NmY3eCcd この条件は必ずTRUEになりまっせー
というwarningはあったと思う
というwarningはあったと思う
410デフォルトの名無しさん (エムゾネ FF62-Jh9r)
2021/01/03(日) 11:41:35.97ID:TDgWBZToF <0は終わらないじゃなくて始まらないの間違いだった
411デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/03(日) 13:51:43.57ID:3NmY3eCcd unsigned int a;
for( a = 11; a > 0; a -= 2 ) ...
こんな感じのを作ってしまったことはあったな…
aは1のあと65535になるので永久に終わらず
aは0になる可能性もあるので条件式ではwarningも出ず
for( a = 11; a > 0; a -= 2 ) ...
こんな感じのを作ってしまったことはあったな…
aは1のあと65535になるので永久に終わらず
aは0になる可能性もあるので条件式ではwarningも出ず
412デフォルトの名無しさん (スッップ Sd62-CHd6)
2021/01/03(日) 14:28:17.87ID:izXBuwpQd413ビル・ジョブズ (ワッチョイ 8101-r+GE)
2021/01/04(月) 00:09:11.84ID:V9PboY9+0 mallocとか常に成功を返すんじゃない?
問題はそのアドレスに何か操作をした時。
MMUありの前提だけど。
問題はそのアドレスに何か操作をした時。
MMUありの前提だけど。
414デフォルトの名無しさん (ワッチョイ 4963-Zovn)
2021/01/04(月) 00:29:40.79ID:NWAwlt7F0 実行してみないと使えるか分からないとなると
医療関係では使用禁止になるな
医療関係では使用禁止になるな
415デフォルトの名無しさん (ワッチョイ 8101-UAPS)
2021/01/04(月) 01:03:06.31ID:PMQqdXD/0 validation 通らないだろうねぇ
416デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/04(月) 07:24:09.81ID:Nz2iXOdN0417デフォルトの名無しさん (ワッチョイ dd5f-Jh9r)
2021/01/05(火) 12:05:40.60ID:G8BimKKu0 宇宙関係も無理やろね
418デフォルトの名無しさん (スップ Sdc2-CHd6)
2021/01/05(火) 12:12:18.79ID:8w5sr2J0d 失敗が絶対に許されないならmallocとか使うな
スタティックで確保しろ
スタティックで確保しろ
419デフォルトの名無しさん (ワッチョイ 9244-Iopg)
2021/01/05(火) 13:27:41.97ID:zIEcR2TW0 一つのファイルポインタで読み書きする場合、読みと書きを切り替えるときに
fseek(fp,0,SEEK_CUR)等を挟むことはANSI Cにも書いてるわけですが、
挟まなくていい環境(Linuxとか)もありその実装上の違いってどうなってるんでしょうか?
バッファゼロにしてもfseekが必要なので、バッファリングってわけでもなさそうです。
fseek(fp,0,SEEK_CUR)等を挟むことはANSI Cにも書いてるわけですが、
挟まなくていい環境(Linuxとか)もありその実装上の違いってどうなってるんでしょうか?
バッファゼロにしてもfseekが必要なので、バッファリングってわけでもなさそうです。
420デフォルトの名無しさん (ワッチョイ c2a5-dZT0)
2021/01/05(火) 13:36:43.08ID:sz7Oy+6E0 https://github.com/gcc-mirror/gcc
ここからwindowsのfseekとlinuxのfseekを見つけ出す
ここからwindowsのfseekとlinuxのfseekを見つけ出す
421はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 063e-UAPS)
2021/01/05(火) 14:23:40.55ID:N7gEH2Zs0 C の規格では OS とかの支援のない 「フリースタンディング」な環境にも言及していて、
フリースタンディング処理系は標準ヘッダ
float.h
iso646.h
limits.h
stdarg.h
stdbool.h
stddef.h
stdint.h
の内容に限定した機能が用意されてればよいことになってる。
malloc は stdlib.h だから無くても規格合致フリースタンディング処理系と名乗れる。
フリースタンディング処理系は標準ヘッダ
float.h
iso646.h
limits.h
stdarg.h
stdbool.h
stddef.h
stdint.h
の内容に限定した機能が用意されてればよいことになってる。
malloc は stdlib.h だから無くても規格合致フリースタンディング処理系と名乗れる。
422デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/05(火) 16:33:30.17ID:9HicEvTUd >>413
あり得ない
malloc()で==NULLテストして「メモリーが足りません終了します」とかする事はできるが
確保した変数に読み書きした瞬間のエラーは感知する方法がないので
そこでエラーにされてもコアダンプして終了するしかない
ユーザー側から見たら未完成プログラムである
あり得ない
malloc()で==NULLテストして「メモリーが足りません終了します」とかする事はできるが
確保した変数に読み書きした瞬間のエラーは感知する方法がないので
そこでエラーにされてもコアダンプして終了するしかない
ユーザー側から見たら未完成プログラムである
423デフォルトの名無しさん (スプッッ Sd61-CHd6)
2021/01/05(火) 16:45:24.18ID:7nbNqUCud ユーザーからしたら
エラーメッセージを出そうが突然死だろうが
メモリが足りなくなる事自体不完全プログラムだ
エアバッグが作動するときに、
[メモリ不足で動作できませんでした]
なんて表示されても何の意味もない
エラーメッセージを出そうが突然死だろうが
メモリが足りなくなる事自体不完全プログラムだ
エアバッグが作動するときに、
[メモリ不足で動作できませんでした]
なんて表示されても何の意味もない
424はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 063e-UAPS)
2021/01/05(火) 16:47:22.16ID:N7gEH2Zs0 >>422
やっとる (環境も多い) やろがい。
やっとる (環境も多い) やろがい。
425デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/05(火) 17:03:07.78ID:9HicEvTUd >>423
それなら「エアバッグの数が多すぎるんだな」とか推論できるが
なんのメッセージもなく作動しなかったらユーザーはスピードメーター、ショックセンサー、安全装置などあらゆる関連部分を点検しなければならない
それなら「エアバッグの数が多すぎるんだな」とか推論できるが
なんのメッセージもなく作動しなかったらユーザーはスピードメーター、ショックセンサー、安全装置などあらゆる関連部分を点検しなければならない
426デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/05(火) 18:07:14.87ID:dzUtU5Ds0 そんな事はユーザーからすればどうでもいい
不完全な事にはかわりない
不完全な事にはかわりない
427デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/05(火) 18:09:46.84ID:9HicEvTUd ソフト作ったことない人だねw
メッセージの有無はバグが起きたときの対処に大きな違いがある
メッセージの有無はバグが起きたときの対処に大きな違いがある
428デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/05(火) 18:13:12.71ID:dzUtU5Ds0 メッセージの有無なんかよりも
動作するかどうか
の方がはるかに重要
メモリ確保が失敗する可能性があるところで
失敗が許されない動作に対してmallocを使うのが間違い
動作するかどうか
の方がはるかに重要
メモリ確保が失敗する可能性があるところで
失敗が許されない動作に対してmallocを使うのが間違い
429デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/05(火) 18:15:35.99ID:dzUtU5Ds0 適切なエラー処理をすればそれで十分
ソフト設計者のしたっぱの発想
ソフト設計者のしたっぱの発想
430デフォルトの名無しさん (ワッチョイ 468c-qdLU)
2021/01/05(火) 18:35:11.65ID:zMZuOoIk0 >>423
読む人がいないならメッセージも無意味.
読む人がいないならメッセージも無意味.
431デフォルトの名無しさん (ワッチョイ 4963-Zovn)
2021/01/05(火) 18:47:10.76ID:oFYQTpSv0 確保できないと返ってくれば対処方法はあるだろう
OK返されたあと、実際に使おうとしたら実はってなると
その分リカバリーが複雑になる
OK返されたあと、実際に使おうとしたら実はってなると
その分リカバリーが複雑になる
432デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/05(火) 19:00:03.87ID:K71kt7oj0 ここの人はOOM Killerも知らんのか?
確保したプロセスが死ぬとは限らんのだが…
https://reboooot.net/post/kernel-params-related-to-oom-killer/
確保したプロセスが死ぬとは限らんのだが…
https://reboooot.net/post/kernel-params-related-to-oom-killer/
433デフォルトの名無しさん (ワッチョイ 814f-Iopg)
2021/01/05(火) 19:39:22.64ID:eT+iPfAP0 確保しようとしてエラーになったなら対処のしようもあるが、空手形乱発していざとなったら
関係ないプロセスが殺されるってのも困ったもんだよな。
初期のOSXはOOM Killerのような仕組みもなくてシステム全体が固まってたな。
関係ないプロセスが殺されるってのも困ったもんだよな。
初期のOSXはOOM Killerのような仕組みもなくてシステム全体が固まってたな。
434デフォルトの名無しさん (ワッチョイ 3152-CHd6)
2021/01/05(火) 19:58:11.78ID:dzUtU5Ds0435デフォルトの名無しさん (ワッチョイ 8101-UAPS)
2021/01/05(火) 20:01:22.72ID:8cFKE+AV0 お行儀よく死ぬ機構があるかどうか
436デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/05(火) 21:50:05.77ID:9HicEvTUd437デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/05(火) 22:27:33.74ID:K71kt7oj0438デフォルトの名無しさん (ワッチョイ 2e2c-qBFf)
2021/01/05(火) 23:58:57.29ID:zD1ciQHW0 OOM Killer は、Kubernetes のリソース制限の基本。
Linux のnamespace, cgroup
例外は、
アプリ例外は業務上のエラーだから、アプリで処理すべき。
システム障害などは、アプリで処理できる例外ではない
Linux のnamespace, cgroup
例外は、
アプリ例外は業務上のエラーだから、アプリで処理すべき。
システム障害などは、アプリで処理できる例外ではない
439デフォルトの名無しさん (ワッチョイ 06e9-Zovn)
2021/01/06(水) 00:01:25.01ID:WT+BV7/+0 その分類上、メモリ確保失敗はアプリで処理すべきなのかどうかわかんなくない?
440デフォルトの名無しさん (ワッチョイ 4963-Zovn)
2021/01/06(水) 00:46:50.28ID:g4fxgipO0 mallocに失敗したらローカルで確保してみる
それが駄目なら一時ファイル作ってそこに格納する
他にも手はありそうだ
それが駄目なら一時ファイル作ってそこに格納する
他にも手はありそうだ
441デフォルトの名無しさん (ワッチョイ d2bd-fVX1)
2021/01/06(水) 01:23:26.66ID:8o6ePSWp0 >>440
ねーよ間抜け
ねーよ間抜け
442デフォルトの名無しさん (スップ Sdc2-yv5R)
2021/01/06(水) 03:55:31.45ID:Sqdcyjlhd443デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/06(水) 05:25:17.33ID:kVhO/tYW0444デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/06(水) 05:28:43.74ID:kVhO/tYW0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「日本はドイツと違い反省せず」…中国外相、独外相に対日批判 台湾問題で理解求める [少考さん★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」 [ぐれ★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 【苺ましまろ】立民衆院議員、人気漫画の水着少女画像を「醜悪」タイ人少女の性搾取事件と関連付け…党内で反発 [少考さん★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 【裁判】保育所に侵入…園児の下着盗んだ窃盗などの罪 41歳の男に有罪判決 岡山地裁 [nita★]
- 高市「日本版DOGEをつくる!無駄金削減するぞ!」自らの収支報告書すらまとも作れないコイツが削減できるものと言ったら? [472617201]
- 愛国者「大東亜戦争はアジア解放のための戦い」 [834922174]
- 30過ぎた大人おじさんが大学生(昔)のままのファッションをする「おじさんキッズコーデ」、炎上して問題視される。 [153490809]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑 [931948549]
- 1ドル156円、円安 [943688309]
- 日本人のおでん離れ。作る回数減った30.1%🍢 [256556981]
