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/
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
※前スレ
C言語なら俺に聞け 152
https://mevius.5ch.net/test/read.cgi/tech/1560763630/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C言語なら俺に聞け 153
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 5fba-LL4R)
2019/08/17(土) 23:02:42.00ID:tN5mSQYg0952デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/11(土) 17:46:53.86ID:AmOO0hUd0953デフォルトの名無しさん (ワッチョイ ff7b-WeIK)
2020/01/11(土) 17:53:57.75ID:DoM09T/H0 有名なリーナスのコピペだろ
954デフォルトの名無しさん (ワッチョイ ff8c-GYCx)
2020/01/11(土) 22:53:33.52ID:AUXeR2Nj0 初心者がC++を使うのはクラスが便利とかではなくて便利そうなライブラリを引っ張てこれるからだろう。
955デフォルトの名無しさん (ワッチョイ 7f79-G18V)
2020/01/11(土) 22:55:44.33ID:maKKMM+r0 便利そうなライブラリを引っ張ってこれる時点でプログラミング初心者ではないし
そもそもC++から始めるプログラミング初心者とか存在すんのか?
そもそもC++から始めるプログラミング初心者とか存在すんのか?
956デフォルトの名無しさん (ワッチョイ df01-Hp8P)
2020/01/11(土) 23:26:05.56ID:PA1VQQuv0 >>947
NANDだけだな
NANDだけだな
957デフォルトの名無しさん (ワッチョイ df01-ErPi)
2020/01/11(土) 23:31:10.93ID:r5wulSj/0 単純に便利だからじゃないの。
958デフォルトの名無しさん (ワッチョイ 5f3c-G18V)
2020/01/12(日) 01:47:15.90ID:yxPPqVVq0 >>956
そうなんだ
そうなんだ
959デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/12(日) 01:51:46.75ID:HwD03+Q90 笑って良いか?w
960蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ df01-fZVk)
2020/01/12(日) 02:18:33.81ID:1G/fBof90 いいとも!
961デフォルトの名無しさん (ワッチョイ 7fc5-G18V)
2020/01/12(日) 03:10:59.78ID:Svv4a/Ag0 gccコンパイルしたんだが今どきのgccってC++で書かれてるんだな
恥ずかしながらつい最近まで知らんかった
恥ずかしながらつい最近まで知らんかった
962デフォルトの名無しさん (ワッチョイ ff8c-GYCx)
2020/01/12(日) 07:25:04.57ID:t6zFaymS0 >>947
でも日本は失敗したんだよね。
でも日本は失敗したんだよね。
963デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/13(月) 14:02:27.58ID:JUx858UH0 質問です。32bitで確保できるメモリの上限近く(windowsなので1.5GBとか)を
色々なデータで確保した後、いっきに半分以上解放し、またいっきに色々なデータで
上限近く確保しようとするとmalloc()が失敗します(NULLを返す)。
プロセスのメモリを見ても500MBくらいまで落ちてから再確保しているようですがダメです。
これは内部で何が起こっているのでしょうか?断片化とかでしょうか??
色々なデータで確保した後、いっきに半分以上解放し、またいっきに色々なデータで
上限近く確保しようとするとmalloc()が失敗します(NULLを返す)。
プロセスのメモリを見ても500MBくらいまで落ちてから再確保しているようですがダメです。
これは内部で何が起こっているのでしょうか?断片化とかでしょうか??
964963 (ワッチョイ 5f02-tgR8)
2020/01/13(月) 14:50:30.36ID:JUx858UH0 追加ですが殆どのデータを解放して使用量50MBくらいにしてから
しばらく待ってから再確保すると上手く行くようです。ただ500〜1000MBくらい残してから
また上限近くまで確保しようとすると失敗します。何故でしょうか?
しばらく待ってから再確保すると上手く行くようです。ただ500〜1000MBくらい残してから
また上限近くまで確保しようとすると失敗します。何故でしょうか?
965蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ df01-fZVk)
2020/01/13(月) 15:39:54.87ID:xgMgrp400 よくわからんけど、ヒープメモリの仕組みを調べるといいかも。
966デフォルトの名無しさん (ワッチョイ df01-ErPi)
2020/01/13(月) 15:42:12.61ID:WUoSHY6Y0 アリ人間は何故なまえを変えたのか。
967デフォルトの名無しさん (ワッチョイ df73-AxFo)
2020/01/13(月) 15:47:05.97ID:5GjUS2iX0 フラグメント
断片化
アドレス空間2GBの壁
諦めなさい
断片化
アドレス空間2GBの壁
諦めなさい
968デフォルトの名無しさん (ワッチョイ df73-AxFo)
2020/01/13(月) 15:54:23.75ID:5GjUS2iX0 極端な例
256MBのメモリを8個確保 (2GB分) したあと
1, 3, 5, 7個目を解放
この状態だと
1GB空きがあるのに
連続で空いてるのは256MB
だから512MBの確保に失敗する
256MBのメモリを8個確保 (2GB分) したあと
1, 3, 5, 7個目を解放
この状態だと
1GB空きがあるのに
連続で空いてるのは256MB
だから512MBの確保に失敗する
969デフォルトの名無しさん (アウウィフ FFa3-tgR8)
2020/01/13(月) 16:31:54.68ID:axFuJyFlF 断片化だろ
しばらく待つことに何の意味も無い
しばらく待つことに何の意味も無い
970963 (ワッチョイ 5f02-tgR8)
2020/01/13(月) 16:37:34.93ID:JUx858UH0 >>967-969
やっぱり断片化ですか… 一旦使用量50MBまで減らしたら
断片化がかなり無くなったので確保が上手く行ったという事になりますかね。
更にうまくメモリ管理するか64bit化も考えようと思います。ありがとうございました。
やっぱり断片化ですか… 一旦使用量50MBまで減らしたら
断片化がかなり無くなったので確保が上手く行ったという事になりますかね。
更にうまくメモリ管理するか64bit化も考えようと思います。ありがとうございました。
971デフォルトの名無しさん (アウウィフ FFa3-tgR8)
2020/01/13(月) 17:38:12.46ID:axFuJyFlF 細切れにならないように自分ででかく確保して
その中をさらに自分で管理すると良い
その中をさらに自分で管理すると良い
972デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/13(月) 19:01:20.39ID:JUx858UH0 >>971
もっと効率よくやるならその方法がやっぱいいですね。ありがとうございます。
もっと効率よくやるならその方法がやっぱいいですね。ありがとうございます。
973デフォルトの名無しさん (ワッチョイ 7f79-ZE0I)
2020/01/13(月) 22:56:26.88ID:ke+wtNqb0 そこまで大きいデータならオンメモリで処理する手段は捨てるなあ
間違えて数GBのISOファイル読み込んじゃってPC固まったとかそういう挙動は許されざるよ
間違えて数GBのISOファイル読み込んじゃってPC固まったとかそういう挙動は許されざるよ
974デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/13(月) 23:07:18.29ID:Yl8Am7cI0 無理に32ビットでやらなくても良いのではないか?
975デフォルトの名無しさん (ワッチョイ 7fa5-sEAu)
2020/01/14(火) 11:56:44.05ID:AM8t1N0H0 要するにブロックを詰めるパズルゲームだろ
976デフォルトの名無しさん (ワッチョイ 7f36-///2)
2020/01/14(火) 16:16:37.73ID:MAaOflfD0 メモリをポインタではなくハンドルで管理すれば
メモリコンパクションができる
ただし、そんなことをしなくても実容量を超えるメモリが提供できるようにするために仮想記憶があるんだが
メモリコンパクションができる
ただし、そんなことをしなくても実容量を超えるメモリが提供できるようにするために仮想記憶があるんだが
977デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/14(火) 16:30:41.75ID:RxBpnTJ90 実容量を超えるメモリーを使いたいだけならオーバーレイとかセグメント方式のメモリー管理機構とか色々あるが
978デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 17:25:51.38ID:Ae/uveiQ0979デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/14(火) 17:28:42.27ID:Cb2SImdL0 あるけど
980蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9f-fZVk)
2020/01/14(火) 17:37:38.20ID:JKuyIKmvd メインメモリとは別の記憶媒体に退避しておけば、実質使える?かな?
981デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/14(火) 17:46:20.96ID:SgRnb4BR0 >>978
その理屈だと、4GBを超えるファイルは扱えなくことになる
その理屈だと、4GBを超えるファイルは扱えなくことになる
982デフォルトの名無しさん (ワッチョイ df73-AxFo)
2020/01/14(火) 18:01:20.77ID:vjAz2zAO0 32bit Windows の普通のプロセスのアドレス空間は2GB
OSやAPIを改造してFARポインタを扱えるようにするか
ロックアンロック方式のメモリ管理を自力で実装するか
そんなことをするよりは
素直にアプリのメモリ確保の方法を変えるのが早い
もちろん64bit化出来るならそれが一番
OSやAPIを改造してFARポインタを扱えるようにするか
ロックアンロック方式のメモリ管理を自力で実装するか
そんなことをするよりは
素直にアプリのメモリ確保の方法を変えるのが早い
もちろん64bit化出来るならそれが一番
983デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/14(火) 18:05:55.14ID:RxBpnTJ90984デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 18:13:13.94ID:Ae/uveiQ0985デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 18:15:32.64ID:Ae/uveiQ0 >>980-981
そうやっても必要な時にメインメモリに読み込んで使う必要がないですかね?
しかも上手くやりくりして読み込んでもそこで断片化の問題もありますし。
その場合プールを自分で管理するしかなさそうな気がします。途中でその話をしてましたが。
そうやっても必要な時にメインメモリに読み込んで使う必要がないですかね?
しかも上手くやりくりして読み込んでもそこで断片化の問題もありますし。
その場合プールを自分で管理するしかなさそうな気がします。途中でその話をしてましたが。
986デフォルトの名無しさん (ワッチョイ df2d-G18V)
2020/01/14(火) 18:31:15.17ID:jSZPoIDP0 32bitOSで4GB以上のオブジェクトをメモリに読み込んでどうにかしろ、と言われたら。
最初に検討するのはファイルマッピングだろうなあ。それ以外だとやる気がおきない。
APIを叩く必要があるので、WindowsならCreateFileMappingとかMapViewOfFileとか。
最初に検討するのはファイルマッピングだろうなあ。それ以外だとやる気がおきない。
APIを叩く必要があるので、WindowsならCreateFileMappingとかMapViewOfFileとか。
987デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 18:32:25.86ID:Ae/uveiQ0 >>986
ありがとうございます。調べてみますね。
ありがとうございます。調べてみますね。
988デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/14(火) 18:32:29.78ID:RxBpnTJ90989蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9f-fZVk)
2020/01/14(火) 18:39:12.20ID:JKuyIKmvd どうしてそんなデカいデータが必要なんだろう。遺伝子情報でも操作してんのかな?
990デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 18:41:07.63ID:Ae/uveiQ0 >>988
>いやいや、オーバーレイとかバンク切替とかは半分ネタだから〜
ネタでしたかw 了解しました。
>アホほどでかいサイズでなきゃそれほど問題にならないよ
細かいのと途中で500MBくらいを二つとかがあるので時々断片化のせいでmallocが失敗するんですよねえ…
>どうしてもでかい領域を確保/解放する必要あるならそれしかないように思う
とりあえず作業領域様に500MBの領域を確保して再利用すると他の部分でmalloc失敗はなかったですね。
仰るように小さい領域はかなり確保しても問題にならないですね。大きな領域用にメモリスペースを予め確保しておく方法がよいかもしれないと思いました。
>いやいや、オーバーレイとかバンク切替とかは半分ネタだから〜
ネタでしたかw 了解しました。
>アホほどでかいサイズでなきゃそれほど問題にならないよ
細かいのと途中で500MBくらいを二つとかがあるので時々断片化のせいでmallocが失敗するんですよねえ…
>どうしてもでかい領域を確保/解放する必要あるならそれしかないように思う
とりあえず作業領域様に500MBの領域を確保して再利用すると他の部分でmalloc失敗はなかったですね。
仰るように小さい領域はかなり確保しても問題にならないですね。大きな領域用にメモリスペースを予め確保しておく方法がよいかもしれないと思いました。
991デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/14(火) 18:45:58.67ID:SgRnb4BR0992デフォルトの名無しさん (ワッチョイ 5f63-hsX7)
2020/01/14(火) 18:48:32.63ID:iQtyfXTR0 もう64bitが当たり前になってかなり経つ昨今、そんな案件ごろごろある
映像をリアルタイムでごにょごにょとか言われたら簡単にギガ単位のメモリ使う
稀有な例では無いけど32bit環境でやれって言われたらヤダナとは思う
映像をリアルタイムでごにょごにょとか言われたら簡単にギガ単位のメモリ使う
稀有な例では無いけど32bit環境でやれって言われたらヤダナとは思う
993デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 18:55:05.49ID:Ae/uveiQ0994蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9f-fZVk)
2020/01/14(火) 19:02:49.75ID:JKuyIKmvd そろそろ次スレ
995デフォルトの名無しさん (ワッチョイ 7f79-G18V)
2020/01/14(火) 19:20:01.41ID:2s3ZuCDc0 8k240Hz動画だと1秒キャッシュするだけでメモリ消費24GBか
まあ今時わざわざCを使うなんて極限環境だけだからそういうこともあるよね
まあ今時わざわざCを使うなんて極限環境だけだからそういうこともあるよね
996デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/14(火) 19:23:27.41ID:SgRnb4BR0997デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 19:27:10.09ID:Ae/uveiQ0998デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/14(火) 19:33:22.57ID:SgRnb4BR0999デフォルトの名無しさん (ワッチョイ 7f36-///2)
2020/01/14(火) 19:45:37.22ID:MAaOflfD01000デフォルトの名無しさん (ワッチョイ 7fc5-G18V)
2020/01/14(火) 19:50:12.26ID:gkNCY9ap0 for (int i = 0; i < 1000; i++) {
puts("1000");
}
puts("1000");
}
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 149日 20時間 47分 30秒
新しいスレッドを立ててください。
life time: 149日 20時間 47分 30秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
