!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
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言語なら俺に聞け 157
https://mevius.5ch.net/test/read.cgi/tech/1624846971/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 158
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ブーイモ MMcf-4SjH)
2021/12/25(土) 12:11:46.61ID:xxeaCAplM241デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/23(水) 16:46:51.15ID:vebGIGPQ0 while(1){
a(&x);
if(x==1) break;
b();
}
ってコーディングを禁止している案件もあった。break文じゃなく、しっかりと条件式がfalseになるように書けとのことだった。
ただ、このやり方って入門書にも書いてある普通な方法だと思うけど。ループの中間くらいで抜けたいときはその後の処理をifで実行できないようにしていたので可読性は悪かった。
もちろん continue も封印されていた。
while(x!=1){
a(&x);
if(x!=1) b();
}
みたいに
a(&x);
if(x==1) break;
b();
}
ってコーディングを禁止している案件もあった。break文じゃなく、しっかりと条件式がfalseになるように書けとのことだった。
ただ、このやり方って入門書にも書いてある普通な方法だと思うけど。ループの中間くらいで抜けたいときはその後の処理をifで実行できないようにしていたので可読性は悪かった。
もちろん continue も封印されていた。
while(x!=1){
a(&x);
if(x!=1) b();
}
みたいに
242デフォルトの名無しさん (ワッチョイ ff02-9L8B)
2022/02/23(水) 16:49:25.49ID:n4QLtIZ70 whileの中で関数呼べばいいじゃん
243デフォルトの名無しさん (スップ Sd1f-f428)
2022/02/23(水) 17:07:12.12ID:FxZT1eeTd inline関数ならオーバーヘッドもないはずだしな
それで何が聞きたいんじゃ?
それで何が聞きたいんじゃ?
244デフォルトの名無しさん (ワッチョイ ff01-bFjU)
2022/02/23(水) 17:08:55.71ID:6oKgGQho0 俺なら
a(&x);
while(x == 1){
b();
a(&x);
}
って書くかな
a(&x);
while(x == 1){
b();
a(&x);
}
って書くかな
245デフォルトの名無しさん (ワッチョイ a301-mA98)
2022/02/23(水) 19:16:45.48ID:Q2o1N4Td0 理不尽だと思われるコーディングルールも歴史があってそうなってたりするから
長いものに巻かれるしかない
長いものに巻かれるしかない
246デフォルトの名無しさん (ワッチョイ 83d2-vGHd)
2022/02/23(水) 22:15:21.75ID:PssNo99E0 俺なら嫌味のように
{
bool need_break=false;
while(... && !need_break){
//前半処理
if(!(need_break=...)){
//後半処理
}
}
}
とでも書くかな
{
bool need_break=false;
while(... && !need_break){
//前半処理
if(!(need_break=...)){
//後半処理
}
}
}
とでも書くかな
247デフォルトの名無しさん (ブーイモ MMa7-8pl8)
2022/02/23(水) 22:33:27.74ID:ek+gncWLM for (;;)
なんでみんなこれ使わないの?
なんでみんなこれ使わないの?
248デフォルトの名無しさん (ワッチョイ 8363-9yE7)
2022/02/23(水) 22:36:06.79ID:v1sPphh80 泣いてるみたいで悲しい
249デフォルトの名無しさん (ブーイモ MM7f-8pl8)
2022/02/23(水) 23:22:31.05ID:lJym8p+qM あと制御文の括弧前にスペース入れるのは少数派なんだろうか…
250はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/23(水) 23:26:41.88ID:o4j3GXmb0 個々の場面で不適切でもチーム全員が適切に判断できないようなら
比較的マシそうな側に統一するルールにも合理性はある。
それとか「わからんかったらこうしとけ」みたいな口伝が
拡大解釈されていったりするのもありそうな話だ。
比較的マシそうな側に統一するルールにも合理性はある。
それとか「わからんかったらこうしとけ」みたいな口伝が
拡大解釈されていったりするのもありそうな話だ。
251はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/24(木) 00:03:57.70ID:KIw+63Ii0252はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/24(木) 00:21:21.22ID:KIw+63Ii0 >>247
それが無限ループになるというのが読み取り難いからではないかな。
初期化やインクリメントの部分を省略したら単に何もしないのだろうと類推できるけど、
省略された条件式が真に判定されるのか偽に判定されるのかというのは例外規則として知ってなきゃわからない。
慣用句 (イディオム) と化してるので慣れてしまうと普通に読めるけど、
while(1) のほうが明示的な分だけわかりやすいのかもしれない。
それが無限ループになるというのが読み取り難いからではないかな。
初期化やインクリメントの部分を省略したら単に何もしないのだろうと類推できるけど、
省略された条件式が真に判定されるのか偽に判定されるのかというのは例外規則として知ってなきゃわからない。
慣用句 (イディオム) と化してるので慣れてしまうと普通に読めるけど、
while(1) のほうが明示的な分だけわかりやすいのかもしれない。
253デフォルトの名無しさん (アウアウイー Sa07-6/qx)
2022/02/24(木) 00:27:00.80ID:DLFV0+Dqa 関数っぽさをなくすためにスペース空ける方がいいと思う
254デフォルトの名無しさん (ワントンキン MMc7-8oZ9)
2022/02/24(木) 02:22:52.59ID:9O+r6lMKM255はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/24(木) 02:31:22.55ID:KIw+63Ii0 >>254
ループとしては無限ループにしておいて break で抜けるような構造は良くないといえばあんまり良くないんだけど、
そうは言っても存在する以上はその場合を明示的に表せるような構文があると便利ってのも確かで、
そのあたりは設計思想の違いとしか言いようがないよな……。
ループとしては無限ループにしておいて break で抜けるような構造は良くないといえばあんまり良くないんだけど、
そうは言っても存在する以上はその場合を明示的に表せるような構文があると便利ってのも確かで、
そのあたりは設計思想の違いとしか言いようがないよな……。
256デフォルトの名無しさん (ワントンキン MMc7-8oZ9)
2022/02/24(木) 02:44:45.66ID:9O+r6lMKM >>255
その構造が良くないというのは自分も昔はそうだったが単なる思い込みだと気付いたw
さらにwhileは先頭でif break、do whileは最後でif breakしているだけであるし
ある程度計算を進めてから途中でようやくif breakできないとwhileだと困ることもloop式で解決された
さらにループを抜けてbreakしたい時は値を返したい時が多いからloop文ではなくloop式が非常に便利
その構造が良くないというのは自分も昔はそうだったが単なる思い込みだと気付いたw
さらにwhileは先頭でif break、do whileは最後でif breakしているだけであるし
ある程度計算を進めてから途中でようやくif breakできないとwhileだと困ることもloop式で解決された
さらにループを抜けてbreakしたい時は値を返したい時が多いからloop文ではなくloop式が非常に便利
257ハノン ◆QZaw55cn4c (NZ 0Hdf-864q)
2022/02/24(木) 05:13:17.42ID:SpBJKMB7H >>251,249
K&R2 では if や for, switch の後にはスペースを入れますね
私は基本的に K&R2 に沿って書きますが、関数の始まりを示す { は例外的に宣言に続けて書きます
int main() {
return 0;
}
K&R2 では if や for, switch の後にはスペースを入れますね
私は基本的に K&R2 に沿って書きますが、関数の始まりを示す { は例外的に宣言に続けて書きます
int main() {
return 0;
}
258デフォルトの名無しさん (ワッチョイ ff01-bFjU)
2022/02/24(木) 06:47:25.50ID:iDpw9I/70259デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/24(木) 06:53:42.23ID:MBzpszCI0 俺もマジックナンバーがないほうが好き
260デフォルトの名無しさん (スップ Sd1f-f428)
2022/02/24(木) 08:03:43.62ID:PbuedMT9d #define FOREVER for(;;)
261デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/24(木) 08:20:28.13ID:MBzpszCI0 >>260
こう書くとbreakやgotoが嘘つきに見えるな
こう書くとbreakやgotoが嘘つきに見えるな
262デフォルトの名無しさん (ワッチョイ 8310-iDSx)
2022/02/24(木) 11:30:55.34ID:XK2EQ9NF0 #define DEATH_MARCH for(;;)
263デフォルトの名無しさん (スップ Sd1f-vGHd)
2022/02/24(木) 12:02:15.07ID:7WoYZRJzd #define DISALLOW_BREAK for(;;)
#define FOREVER for(;;)
DISALLOW_BREAK FOREVER{
...
if(...)break;
}
#define FOREVER for(;;)
DISALLOW_BREAK FOREVER{
...
if(...)break;
}
264デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/24(木) 17:23:09.91ID:bIfpVEhP0 >>261
正規表現ライブラリとか使って、複雑な制御を見えなくするのも一つの手かも?
自分のところのbreak continueは嫌がられるが、他所なら見えないので。
結局機械語になれば、中でGoto(jmp)しまくっているわけなので。
正規表現ライブラリとか使って、複雑な制御を見えなくするのも一つの手かも?
自分のところのbreak continueは嫌がられるが、他所なら見えないので。
結局機械語になれば、中でGoto(jmp)しまくっているわけなので。
265デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/24(木) 17:32:25.81ID:MBzpszCI0 jmp命令は構造化プログラミングで問題視されるgotoとは違うぞ
266はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/24(木) 17:36:24.61ID:KIw+63Ii0 抽象度が違う話だからなぁ。
267デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/24(木) 17:36:30.96ID:MBzpszCI0 ダイクストラは「高級言語では」という限定をつけてgotoを問題視していたのであって
アセンブラや機械語に出てくる分岐命令はあの議論の対象外だ
アセンブラや機械語に出てくる分岐命令はあの議論の対象外だ
268はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/24(木) 17:38:56.51ID:KIw+63Ii0269デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/24(木) 17:43:46.24ID:MBzpszCI0270デフォルトの名無しさん (ワッチョイ 8363-9yE7)
2022/02/24(木) 17:44:23.55ID:5fQRd2wi0 SQL埋め込みのC言語goto使いまくってた
271デフォルトの名無しさん (スップ Sd1f-f428)
2022/02/24(木) 17:50:29.88ID:PbuedMT9d K&Rでもgotoは醜いが使わないと余計な変数や不自然な構造が必要になるからねーとクギをさしてる
272デフォルトの名無しさん (アウアウエー Sadf-8pl8)
2022/02/24(木) 17:53:57.59ID:8VCxJpwXa コードが80x120に収まれば俺はgotoなんて気にしない
273デフォルトの名無しさん (ワントンキン MMc7-8oZ9)
2022/02/24(木) 17:55:30.50ID:9O+r6lMKM >>271
そういうのもloop式導入で解決するから導入しよう
そういうのもloop式導入で解決するから導入しよう
274デフォルトの名無しさん (ワッチョイ a301-tnbg)
2022/02/24(木) 21:02:28.06ID:Qe3Dm4uv0 抜け出しgotoは分かる
飛び込みgotoはつらい
飛び込みgotoはつらい
275デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/25(金) 13:00:32.72ID:2Pynziee0 構造化プログラミングを盲信する気は毛頭ないが
それは違うぞ
抜けだしであろうが飛び込みであろうが
ループの端に設定された条件に従わない分岐は
ダイクストラが問題視する対象だ
それは違うぞ
抜けだしであろうが飛び込みであろうが
ループの端に設定された条件に従わない分岐は
ダイクストラが問題視する対象だ
276デフォルトの名無しさん (ワッチョイ cf2c-hSEA)
2022/02/25(金) 13:19:00.10ID:Eg3DloqN0 MISRA-C でも、制御パスを変える、
goto, 複数return, (多重脱出からの?)break/continue などは禁止。
だから、ループ内で、やたらとフラグを持ち回る
でも、Linux では、
早期return, goto でエラー処理をまとめたりするから、フラグを持ち回らない
goto, 複数return, (多重脱出からの?)break/continue などは禁止。
だから、ループ内で、やたらとフラグを持ち回る
でも、Linux では、
早期return, goto でエラー処理をまとめたりするから、フラグを持ち回らない
277デフォルトの名無しさん (ワントンキン MMc7-8oZ9)
2022/02/25(金) 13:35:54.50ID:aDhOSI3tM278デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/25(金) 16:58:20.86ID:2Pynziee0 >>277
おまえさんもダイクストラみたいに学会誌に投稿したら?
おまえさんもダイクストラみたいに学会誌に投稿したら?
279デフォルトの名無しさん (アウアウウー Sa2f-g6h8)
2022/03/01(火) 11:42:38.47ID:iGO9Qf02a break;とかcontinue;はいいの?
280デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/01(火) 12:15:17.30ID:qblu1Z+O0 switch以外のbreakは制御式にない条件での脱出
continueは違う
continueは違う
281デフォルトの名無しさん (テテンテンテン MM86-lzB5)
2022/03/01(火) 12:24:02.66ID:QP0iZO8FM どこでもexit
282デフォルトの名無しさん (ワッチョイ 03b1-65e0)
2022/03/03(木) 13:53:35.02ID:2Y1y5HDI0 グローバル変数禁止プロジェクトがあって、固定値が全てリテラルでばらまかれていたので、仕様変更でチーム員は苦労してた。
自分の担当箇所は謎関数を一つ作り、そこから値を得ていた。
自分の担当箇所は謎関数を一つ作り、そこから値を得ていた。
283デフォルトの名無しさん (ブーイモ MMea-S9sh)
2022/03/03(木) 14:05:48.79ID:o7MH0vY5M グローバル変数禁止なのになんで定数まで禁止なんだ
284デフォルトの名無しさん (ワッチョイ ca01-+tM1)
2022/03/03(木) 14:16:38.79ID:bgg8zGG60285デフォルトの名無しさん (スッップ Sdea-6y7D)
2022/03/03(木) 14:18:42.95ID:iO+E/Lewd マクロは使わんのか?
ただの素人のスパゲッティだな
ただの素人のスパゲッティだな
286デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/03(木) 15:16:49.50ID:dDnSjvDO0 センス悪いやつがいるせいで
必要なものまで制限されるんだよな
ロクに精査もせずに横暴な制限を作るやつらも
センス悪いやつの一員
必要なものまで制限されるんだよな
ロクに精査もせずに横暴な制限を作るやつらも
センス悪いやつの一員
287デフォルトの名無しさん (ブーイモ MM86-S9sh)
2022/03/03(木) 15:48:11.59ID:NNobhPIrM 昔グローバル変数はなるべく使わないようにねってお願いしたら、グローバル変数が関数内のstatic変数になって返ってきて状況悪化させしまったことを思い出した…
依頼は正確でないとな
依頼は正確でないとな
288デフォルトの名無しさん (ワッチョイ 06e9-g6h8)
2022/03/03(木) 15:52:02.14ID:nN/xu0Sn0 >>287
望んだ改善ではないにしてもグローバル変数よりは関数内static変数のほうがマシで、悪化はしてないのでは?
望んだ改善ではないにしてもグローバル変数よりは関数内static変数のほうがマシで、悪化はしてないのでは?
289デフォルトの名無しさん (ワッチョイ 073e-8W3/)
2022/03/03(木) 15:55:02.85ID:7Ur+27OW0 必要なものが制限されるのは腹立たしいだろうけど、
現実にセンスないやつが今、現場にいる状況で比較的マシにしようと思ったら制限も已むなし。
現実にセンスないやつが今、現場にいる状況で比較的マシにしようと思ったら制限も已むなし。
290デフォルトの名無しさん (テテンテンテン MM86-+tM1)
2022/03/03(木) 15:55:56.96ID:9ZWmTo8BM 君は関数内static変数の破壊力を知らない
291デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/03(木) 16:02:36.91ID:dDnSjvDO0 int *just_function(void)
{
static int not_global_variable;
return ¬_global_variable;
}
struct common_variables
{
int fool;
int jerk;
int idiot;
};
struct common_variables *a_function(void)
{
struct common_variables cv;
return &cv;
}
{
static int not_global_variable;
return ¬_global_variable;
}
struct common_variables
{
int fool;
int jerk;
int idiot;
};
struct common_variables *a_function(void)
{
struct common_variables cv;
return &cv;
}
292デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/03(木) 16:03:41.51ID:dDnSjvDO0 static struct common_variables cv;
だった
笑い処でミスってどうするw
だった
笑い処でミスってどうするw
293はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 073e-8W3/)
2022/03/03(木) 16:09:12.32ID:7Ur+27OW0 やりたいことは分割統治なんだよね。 プログラムを機能単位ごとに分割して部品にしたいの。
部品を束ねた部品があって、それを束ねて大きな部品にして……という綺麗に階層的な依存関係にしたいの。
色んなところからアクセスされるものがあるのが目に付くと綺麗に分割できてねぇなあと感じるという話であって
言語機能としての「グローバル変数」を使わないようにすれば綺麗になるというわけではない。
部品を束ねた部品があって、それを束ねて大きな部品にして……という綺麗に階層的な依存関係にしたいの。
色んなところからアクセスされるものがあるのが目に付くと綺麗に分割できてねぇなあと感じるという話であって
言語機能としての「グローバル変数」を使わないようにすれば綺麗になるというわけではない。
294デフォルトの名無しさん (テテンテンテン MM86-+tM1)
2022/03/03(木) 16:17:38.32ID:9ZWmTo8BM グローバル変数一つ新規に作るのに何枚も書類を書かないといけないプロジェクトがあって、
その時は一つだけ管理テーブルという名称の構造体を作成登録した。
その後は必要に応じて構造体にメンバーを追加した。
追加の場合には許可がいらない。
その時は一つだけ管理テーブルという名称の構造体を作成登録した。
その後は必要に応じて構造体にメンバーを追加した。
追加の場合には許可がいらない。
295デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/03(木) 16:23:37.12ID:dDnSjvDO0 俺のジョークそのまんまかw
296デフォルトの名無しさん (スップ Sdea-PHKB)
2022/03/03(木) 16:28:52.42ID:rhQumEoNd int型のグローバル変数が2つあればvoid*アドレスを分割して突っ込める
291みたいなstructへのポインタ突っ込んどきゃやりたい放題だよやったね!
291みたいなstructへのポインタ突っ込んどきゃやりたい放題だよやったね!
297デフォルトの名無しさん (ワッチョイ 5f69-ibFl)
2022/03/04(金) 08:30:10.22ID:kn6yruMU0 C++ の singleton クラスと
関数内static から戻ってくるのも 似たようなものになる?のか?
関数内static から戻ってくるのも 似たようなものになる?のか?
298デフォルトの名無しさん (ワッチョイ 0f24-84yK)
2022/03/06(日) 14:20:18.71ID:RiucPZY70 ref class SampleCls
{
internal:
property int A[int]
{
int get(int n)
{
int value = n * 100;
return value;
}
void set(int index,int n)
{
}
}
};
SampleCls objを実体化させた後に
s = s + "n= " + obj.A[i]+ "\n";
を5回繰り返したら0,100,200,300,400になったのですが
0に100をかけると100になるのでしょうか?
{
internal:
property int A[int]
{
int get(int n)
{
int value = n * 100;
return value;
}
void set(int index,int n)
{
}
}
};
SampleCls objを実体化させた後に
s = s + "n= " + obj.A[i]+ "\n";
を5回繰り返したら0,100,200,300,400になったのですが
0に100をかけると100になるのでしょうか?
299デフォルトの名無しさん (ワッチョイ 0f24-84yK)
2022/03/06(日) 14:24:03.50ID:RiucPZY70 A[i]の値がどんなふうに決まっているのか知りたいのですがよくわかりません
どなたか教えていただければ幸いです。
どなたか教えていただければ幸いです。
300デフォルトの名無しさん (ワッチョイ 0f24-84yK)
2022/03/06(日) 14:42:22.06ID:RiucPZY70 すみません、解決しましたSet()とget()の動きをちゃんと理解していなかったことが
原因でした。
原因でした。
301デフォルトの名無しさん (ブーイモ MM7f-asIB)
2022/03/06(日) 16:10:19.16ID:g5zD4gJoM まず、自分が何の言語で書いてるか理解したらもっと早く答えが手に入ると思うよ…
302デフォルトの名無しさん (ワッチョイ 9fad-Djfv)
2022/03/07(月) 04:27:05.03ID:t70FSnsj0 ダイクストラって名前を聞くたびに大工が屋根の上で仕事をしている姿が浮かんでしまう
303デフォルトの名無しさん (ワッチョイ 0f95-UGCc)
2022/03/07(月) 06:18:54.97ID:RhJCMKRm0 キャスバルレム大工ん
304デフォルトの名無しさん (ワッチョイ cb10-JlPT)
2022/03/08(火) 12:29:53.09ID:Ki3D6geg0 アルゴリズム系でかっこいい名前はダイクストラとラグランジュ
305デフォルトの名無しさん (スプッッ Sdbf-dovv)
2022/03/08(火) 14:05:47.68ID:0fUGXJlMd 構造化プログラミングはアルゴリズムじゃない
306デフォルトの名無しさん (ワッチョイ cb10-JlPT)
2022/03/08(火) 20:30:43.45ID:Ki3D6geg0 ダイクストラ法な
307デフォルトの名無しさん (ワッチョイ 0f46-svpa)
2022/03/09(水) 01:38:28.31ID:D4BPG9+J0 大屑虎
308デフォルトの名無しさん (ワッチョイ 6bb3-Ff7g)
2022/03/10(木) 20:38:39.30ID:kXeE1dtK0 malloc,freeを多用すると断片化でいずれOSが落ちるってのは
Windows11やLinuxでも起きる問題ですか?
Windows11やLinuxでも起きる問題ですか?
309デフォルトの名無しさん (ワッチョイ 0f63-23wO)
2022/03/10(木) 20:42:14.86ID:4CPsM6xv0 使い方間違えていればOS問わず不味いだろ
310デフォルトの名無しさん (ワッチョイ 6bb3-Ff7g)
2022/03/10(木) 21:22:58.66ID:kXeE1dtK0 正しく使っていれば問題ないということでOK?
なんか、正しく使っていても断片化が発生するみたいなのを聞いたもので
なんか、正しく使っていても断片化が発生するみたいなのを聞いたもので
311デフォルトの名無しさん (エムゾネ FFbf-+wPv)
2022/03/10(木) 21:47:12.08ID:0nt+oQbsF 昔のCPUならともかく
MMUを使ってるOSなら断片化しないだろ
MMUを使ってるOSなら断片化しないだろ
312デフォルトの名無しさん (ドコグロ MM0f-8Z4y)
2022/03/10(木) 22:40:12.59ID:iIk3GhqfM MMUのページサイズとmalloc/freeの管理サイズは全然違うぞ
313デフォルトの名無しさん (ワッチョイ efe9-6iqn)
2022/03/11(金) 14:14:05.09ID:Yxv/2BSs0 >>308,310
断片化は発生するだろうけど、そのせいでOSが落ちるなんてことは最近のOSではたぶん無い。
断片化によるメモリ確保失敗によってアプリが落ちることはあるかもしれない。
「正しく使っていれば」という条件で質問されても何をもって正しいと言うのか示してもらわないと答えようがない。
断片化は発生するだろうけど、そのせいでOSが落ちるなんてことは最近のOSではたぶん無い。
断片化によるメモリ確保失敗によってアプリが落ちることはあるかもしれない。
「正しく使っていれば」という条件で質問されても何をもって正しいと言うのか示してもらわないと答えようがない。
314デフォルトの名無しさん (ワッチョイ 1bd7-UGCc)
2022/03/11(金) 21:28:24.41ID:FGXUCKCr0 1MiB以上と未満で挙動を分けているmallocはよく見かけるね
315デフォルトの名無しさん (ブーイモ MM8f-URqd)
2022/03/11(金) 21:50:14.89ID:o502mXGNM >>308
実装を知っていれば意図的にフラグメントは起こせる、という程度で気にしなければ普通起きない
実装を知っていれば意図的にフラグメントは起こせる、という程度で気にしなければ普通起きない
316デフォルトの名無しさん (ワッチョイ 82a6-QV3l)
2022/03/12(土) 00:08:34.44ID:NOu0XfGq0317デフォルトの名無しさん (ワッチョイ 82ad-WCXV)
2022/03/12(土) 01:41:51.18ID:NpUzvYny0 >>308
普通のアプリ動かしているだけなのにOSが落ちるとすると、そのOSは何かおかしい。OSにバグがあるのではないか?
普通のアプリ動かしているだけなのにOSが落ちるとすると、そのOSは何かおかしい。OSにバグがあるのではないか?
318デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/12(土) 13:07:51.07ID:aRaeBtiY0 普通に車を運転してたら事故った
車に欠陥があるはず
車に欠陥があるはず
319デフォルトの名無しさん (ワッチョイ ee46-NFVq)
2022/03/12(土) 15:32:14.60ID:XvQpUkSW0 九州のタクシー暴走事故はプリウスのせいだと思っている。
320デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/12(土) 16:34:06.63ID:aRaeBtiY0 プリウスの制御プログラムを書いた人、ここにいませんか?
321デフォルトの名無しさん (ドコグロ MM95-koMU)
2022/03/12(土) 18:00:40.48ID:WugjRoTQM 仮にいたとしても名乗り出ないだろw
322デフォルトの名無しさん (ワッチョイ e5d7-JxOY)
2022/03/12(土) 18:10:20.20ID:kaM/Ypx70 >>318
当然、疑うことだね
当然、疑うことだね
323デフォルトの名無しさん (ワッチョイ 6ebb-easS)
2022/03/12(土) 18:29:57.19ID:0pfFD5zX0 ドライバーの単体テストは実施してたんですか?
324デフォルトの名無しさん (ワッチョイ 82ad-WCXV)
2022/03/12(土) 23:53:51.20ID:NpUzvYny0 >>318
それは今回の話には当てはまらない。普通のアプリを動かしていたらアプリが落ちた、だったら当てはまる。
今回の話を喩えるなら普通の車を運転していたら道路が陥没したみたいになる。OSの方が落ちたんだから。
それは今回の話には当てはまらない。普通のアプリを動かしていたらアプリが落ちた、だったら当てはまる。
今回の話を喩えるなら普通の車を運転していたら道路が陥没したみたいになる。OSの方が落ちたんだから。
325デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/12(土) 23:56:33.44ID:aRaeBtiY0 そうか?
池袋事故では最後まで車の欠陥を主張してたぞ
普通にって表現は、あくまでも本人の主観だからな
池袋事故では最後まで車の欠陥を主張してたぞ
普通にって表現は、あくまでも本人の主観だからな
326デフォルトの名無しさん (ワッチョイ ee46-NFVq)
2022/03/13(日) 00:27:55.58ID:8TmiOcWs0 上級国民は医師に運転を止められていた欠陥アプリなので、譬喩に用いるには特殊すぐる。
327デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/13(日) 00:30:40.49ID:giayljWn0 事故起こした奴って自分が原因だと思ってないだろう
328デフォルトの名無しさん (ワッチョイ e5d7-JxOY)
2022/03/13(日) 06:05:08.20ID:g8VV1ENe0 常に自分を疑え、なんて根性論めいた主張には興味ないし
弁護士に譲歩的なことを言うなと指示されて本当に思っていることと違うことを陳述するのもこの議論とは関係ない
弁護士に譲歩的なことを言うなと指示されて本当に思っていることと違うことを陳述するのもこの議論とは関係ない
329デフォルトの名無しさん (スッップ Sda2-Rvba)
2022/03/13(日) 06:10:49.96ID:kdm08K3Td330デフォルトの名無しさん (ワッチョイ b901-jCaJ)
2022/03/13(日) 11:39:10.82ID:HQz48e8Z0 >>308
malloc,freeを多用すると
解放し忘れが多くなり
メモリが断片化して
新規メモリが確保できなくなってエラー吐いてんのに
エラーチェックもせずにポインターにアクセス
そしてプログラムが落ちる
さらにOSを巻き込んでPCごと落ちる
でも今時のOSは生半可なことでは巻き込まれない
malloc,freeを多用すると
解放し忘れが多くなり
メモリが断片化して
新規メモリが確保できなくなってエラー吐いてんのに
エラーチェックもせずにポインターにアクセス
そしてプログラムが落ちる
さらにOSを巻き込んでPCごと落ちる
でも今時のOSは生半可なことでは巻き込まれない
331デフォルトの名無しさん (ワッチョイ 69d2-nn6q)
2022/03/13(日) 17:40:39.42ID:5qwn5s+60 解放し忘れ(メモリリーク)と断片化は別概念
16byteを4回確保した後に1回目と3回目で確保したメモリだけ解放すると、
合計32byte空いてるのに飛び地になってるから32byte領域として扱えない
16byteを4回確保した後に1回目と3回目で確保したメモリだけ解放すると、
合計32byte空いてるのに飛び地になってるから32byte領域として扱えない
332デフォルトの名無しさん (アウアウエー Sa8a-0txc)
2022/03/13(日) 22:53:37.11ID:A2eUK16/a malloc/freeを多用すると解放忘れが多くなるものなのか?
333デフォルトの名無しさん (ワッチョイ 82ad-WCXV)
2022/03/14(月) 01:27:18.72ID:OOlFm33n0 そりゃプログラムがおかしいだけ
334デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/14(月) 10:46:27.63ID:z8DyGqYY0 C言語ではなくスクリプトだが、
無限にSubdirを掘り続ける奴書いて動かしたら、OS落ちたな
XPだったが
無限にSubdirを掘り続ける奴書いて動かしたら、OS落ちたな
XPだったが
335デフォルトの名無しさん (ワッチョイ e5d7-JxOY)
2022/03/14(月) 11:00:21.69ID:GQP59fXj0 fork爆弾みたいな実験か
336デフォルトの名無しさん (スプッッ Sd02-nn6q)
2022/03/14(月) 16:40:21.91ID:LP3GQSIPd OS名はあえて書かないが
Visual C++のmallocで1GBを256回確保しただけで落ちたな
Visual C++のmallocで1GBを256回確保しただけで落ちたな
337デフォルトの名無しさん (ワッチョイ 82ad-6g0K)
2022/03/14(月) 17:46:29.09ID:OOlFm33n0 Windowsは昔から落ちやすい印象
なんというか、OS自体もなんか少しユルい上にみんなして色んなドライバ作って組み込むもんだから余計に落ち易くなってんじゃないかな。
なんというか、OS自体もなんか少しユルい上にみんなして色んなドライバ作って組み込むもんだから余計に落ち易くなってんじゃないかな。
338デフォルトの名無しさん (ワッチョイ 6910-pPbi)
2022/03/14(月) 17:51:09.33ID:L/zgcwZ50 Win98で512バイトぐらいをいくつmalloc出来るかと試したことがあって、
10万回ちかくでNULL返した・・・いや、1万回だったかな?。
とりあえずOSもアプリも落ちなかった。
10万回ちかくでNULL返した・・・いや、1万回だったかな?。
とりあえずOSもアプリも落ちなかった。
339デフォルトの名無しさん (オイコラミネオ MM95-W3oF)
2022/03/15(火) 21:09:49.60ID:uaV7elHUM340デフォルトの名無しさん (ワッチョイ 69b3-9blg)
2022/03/15(火) 21:12:16.49ID:oV08M4Ak0 あなたの基準では世界中アホだらけやな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- ヨッシー、ヘイホー、テレサ ←こいつらwwwwwwwww
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- くそしてかがやけ
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
