!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:QxfbhGyV0318デフォルトの名無しさん (ワッチョイ 87da-sAgx)
2020/12/09(水) 23:18:41.68ID:X6ku5mk00 テンプレートを使わないマクロで実現する方法思いつかなかったから調べてみたけど, BOOST_DECLARE_HAS_MEMBERもSFINAEで実装されてた
標準Cの規格の範囲でポータブルな実装は無理そうに思えてきた
標準Cの規格の範囲でポータブルな実装は無理そうに思えてきた
319デフォルトの名無しさん (ワッチョイ 6710-VxgE)
2020/12/10(木) 08:18:36.14ID:yWf2E74j0 C言語にテンプレート機能だけつける方法ないの?
320デフォルトの名無しさん (ワッチョイ 7fb6-orE1)
2020/12/10(木) 08:33:48.40ID:1ebLrqpT0 #include <tgmath.h>みたいの?
321はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-orE1)
2020/12/10(木) 11:36:21.24ID:p57PMoZs0 >>320
学術的な分類はよく知らないけどそれはアドホック多相に分類されるものじゃないの?
テンプレートはパラメトリック多相的なものなので多相を実現するものという意味では近いけど、
使い勝手としてはそんなに近くない。
>>319
「だけ」っていっても C++ のテンプレートは C++ の型システムやなんやかんやと一体のものなので、
テンプレートだけ抜き出して C に入れるみたいなことは出来ないでしょ。
C 独自のテンプレートみたいなのを考えるくらいなら C++ を使えやって話になるだろうし。
>>315
マクロ展開は文法の解釈に先立って実行されるので、
マクロ展開時にプログラムの内容を見て分岐することは出来ない。
構造体を元にして真偽値を生成するような「展開形」を思いつけば実行時に分岐することは
出来るのかもしれないけど思いつかないなぁ。
学術的な分類はよく知らないけどそれはアドホック多相に分類されるものじゃないの?
テンプレートはパラメトリック多相的なものなので多相を実現するものという意味では近いけど、
使い勝手としてはそんなに近くない。
>>319
「だけ」っていっても C++ のテンプレートは C++ の型システムやなんやかんやと一体のものなので、
テンプレートだけ抜き出して C に入れるみたいなことは出来ないでしょ。
C 独自のテンプレートみたいなのを考えるくらいなら C++ を使えやって話になるだろうし。
>>315
マクロ展開は文法の解釈に先立って実行されるので、
マクロ展開時にプログラムの内容を見て分岐することは出来ない。
構造体を元にして真偽値を生成するような「展開形」を思いつけば実行時に分岐することは
出来るのかもしれないけど思いつかないなぁ。
322デフォルトの名無しさん (ワッチョイ 8769-YTVu)
2020/12/10(木) 13:40:39.75ID:Rt1ylxrY0 開発環境の都合で Cしかないので困ってるとすれば
C++ 食って C 吐き出す中間のコンパイラがあればいい ってことに
C++ 食って C 吐き出す中間のコンパイラがあればいい ってことに
323デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/10(木) 15:08:30.04ID:cFFVV66u0324デフォルトの名無しさん (ワッチョイ bf9a-zfYG)
2020/12/10(木) 20:09:21.68ID:CcbWokCZ0325デフォルトの名無しさん (ドコグロ MM9f-hR+t)
2020/12/10(木) 21:28:27.30ID:hyB2wVsLM >>324
sfinaeがあるので死ぬ代わりにfalseを返す関数みたいなのが作れる
ランタイムでどうこうしたければtype_info -> boolな関数を作ればいいが、型を追加するたびに変更が入ることになってtemplateほどの便利さはない
sfinaeがあるので死ぬ代わりにfalseを返す関数みたいなのが作れる
ランタイムでどうこうしたければtype_info -> boolな関数を作ればいいが、型を追加するたびに変更が入ることになってtemplateほどの便利さはない
326デフォルトの名無しさん (ワッチョイ 7fb6-orE1)
2020/12/11(金) 04:23:01.20ID:p1x0IGcK0 C++をベターCとして使う、でいいんでねい?
327はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-orE1)
2020/12/11(金) 11:11:25.01ID:NpU6prgS0 >>324
(たぶん公式な用語ではないけど) ハードエラーとソフトエラーという区分がある。
テンプレートの展開に失敗してコンパイルの失敗になってしまうハードエラーと、
テンプレートの次の候補を試すソフトエラー。
で、そのソフトエラーを上手いこと利用して分岐するのが SFINAE ってわけ。
C++20 からはコンセプトが入ったのでそれもかなり楽に出来るようになった。
(たぶん公式な用語ではないけど) ハードエラーとソフトエラーという区分がある。
テンプレートの展開に失敗してコンパイルの失敗になってしまうハードエラーと、
テンプレートの次の候補を試すソフトエラー。
で、そのソフトエラーを上手いこと利用して分岐するのが SFINAE ってわけ。
C++20 からはコンセプトが入ったのでそれもかなり楽に出来るようになった。
328デフォルトの名無しさん (ワッチョイ 6791-xqow)
2020/12/11(金) 13:56:53.94ID:VMKMxeJn0 ここはC言語スレではなくC++勧誘スレになったのか
329はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-orE1)
2020/12/11(金) 14:34:30.55ID:NpU6prgS0 無理やりでも C で出来るならいいんだけど、出来ないんだもの……。 しゃーない。
330デフォルトの名無しさん (ワッチョイ 6791-xqow)
2020/12/11(金) 14:45:28.79ID:VMKMxeJn0 〜ならこうやれるって
一種の荒らしだからね
一種の荒らしだからね
331デフォルトの名無しさん (ワッチョイ 7fb6-orE1)
2020/12/11(金) 16:54:58.94ID:p1x0IGcK0 void func();
void func(int);
void func(double);
void func(void*);
auto func(int) -> enable_if_t<false, int>;
みたいな多重定義があるときに
func(1);
と呼び出されたときに、候補1つずつ
呼び出すとしたら何が起きるのかをリストアップして
void func(); //error
void func(int); //exact
void func(double);//conversion
void func(void*);//error
auto func(int) -> enable_if_t<false, void>; //error
そこからerrorになったのを外すってだけだかんな
void func(int);
void func(double);
void func(void*);
auto func(int) -> enable_if_t<false, int>;
みたいな多重定義があるときに
func(1);
と呼び出されたときに、候補1つずつ
呼び出すとしたら何が起きるのかをリストアップして
void func(); //error
void func(int); //exact
void func(double);//conversion
void func(void*);//error
auto func(int) -> enable_if_t<false, void>; //error
そこからerrorになったのを外すってだけだかんな
332デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 17:55:15.27ID:o4C6fSAI0 C言語でどうやって多重定義を実装するのかな?
可変長引数をこねくり回せば出来るかもしれないが
可変長引数をこねくり回せば出来るかもしれないが
333はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-orE1)
2020/12/11(金) 18:02:13.48ID:NpU6prgS0 >>332
C11 から _Generic という機能で型によって自動で呼び分けることは出来る。
C11 から _Generic という機能で型によって自動で呼び分けることは出来る。
334デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 18:20:43.38ID:o4C6fSAI0 新しい機能を使うのではなく、もうちょっと工夫してみて
335デフォルトの名無しさん (ワッチョイ 277f-WScj)
2020/12/11(金) 18:44:44.22ID:7UnfkYH50 何その上から目線
336デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 18:47:44.91ID:o4C6fSAI0 それがC言語の醍醐味
337デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 18:56:25.10ID:o4C6fSAI0 サバイバルナイフ一本でジャングルで暮らしていく位の気概がないとC言語は使えない
338はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-orE1)
2020/12/11(金) 18:56:28.63ID:NpU6prgS0339デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 18:57:16.38ID:o4C6fSAI0 C11スレでも立ててそこでやったら?
340デフォルトの名無しさん (ワッチョイ bf8c-9ESD)
2020/12/11(金) 19:36:39.77ID:Z3aKNSgT0 Cならポインタを積極的に使う。
341デフォルトの名無しさん (ワッチョイ 67e6-HgEh)
2020/12/11(金) 19:42:20.97ID:s+Xx8Zn+0 C11の話題でわざわざ新スレとかこいつ頭おかしいの?w
342デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 19:48:16.88ID:o4C6fSAI0 ならば、このスレの話題は、汎用的なC言語で良いでしょう
新しい規格を話題にしたいなら、それ用のスレを立ててすれば良い
新しい規格を話題にしたいなら、それ用のスレを立ててすれば良い
343デフォルトの名無しさん (ワッチョイ df52-Z7C7)
2020/12/11(金) 19:53:34.25ID:nEgtG7R60 >>342
むしろ古い規格のみを話題にしたいお前が他所に行けば円満解決だろう
むしろ古い規格のみを話題にしたいお前が他所に行けば円満解決だろう
344デフォルトの名無しさん (ワッチョイ 6763-kNbH)
2020/12/11(金) 20:09:21.63ID:o4C6fSAI0 ここは初代のC言語スレ
345デフォルトの名無しさん (ワッチョイ 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 宇宙関係も無理やろね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」 [ぐれ★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★5 [七波羅探題★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 【速報】 米トランプ政権声明 「中国が台湾を奪おうとする、いかなる試みも阻止する」 中国「レッドラインだ」 ★2 [お断り★]
- 元プロ野球選手・堂上隼人(43)を20代女性2人へのわいせつ未遂容疑で8回目の逮捕…これまでの被害者は10代・20代の女性11人に [Anonymous★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 【高市悲報】自衛隊「実は事前に現場海域で中国軍から空母での発着訓練をすると通告がありました」え…?😨😨 [931948549]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑 [931948549]
- 【速報】中国人の凶悪犯罪が急増!害国人の変遷、韓国→ベトナム→中国へ🏡
- 【高市悲報】英テレグラフ紙「おい、日本会議に所属する偽サッチャーが債券市場を破壊してるぞ」🥺 [359965264]
- 【悲報】ジャップ、国際海峡の津軽海峡を中国海警局の船が通過しただけで何故かブチギレる🥹 [616817505]
- 高市首相「コメ増産を進める」 [834922174]
