C言語なら俺に聞け 151

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ cf8f-fy95)
垢版 |
2019/04/02(火) 11:23:37.62ID:SQXqRaAc0
!extend:checked:vvvvv:1000:512
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
2019/04/02(火) 11:27:10.68ID:SQXqRaAc0
前スレ
C言語なら俺に聞け 150
https://mevius.5ch.net/test/read.cgi/tech/1549427943/

!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

次スレを作る時は上記1行を「1行目に」コピーして2行に増やして必ず1行目に入るようにしてください。



…あってる…?
2019/04/02(火) 11:28:04.82ID:SQXqRaAc0
これで良い…のかな

!extend:checked:vvvvv:1000:512

次スレを作る時は >>1 の上記1行を「1行目に」コピーして2行に増やして必ず1行目に入るようにしてください。
2019/04/02(火) 16:37:14.52ID:VBVVrqHU0
前スレ977のリンクが404ぽいので
魚拓から復元してみた
https://ideone.com/IhBGrr

977 名前:デフォルトの名無しさん (アウアウエー Sa3f-XwTE)[] 投稿日:2019/04/01(月) 21:33:02.04 ID:v6mAk26Pa [1/3]
「要素型がint型で要素数がnの配列を受け取って、
全要素に添字と同じ値を代入する関数set_idx」を作成しました。
http://codepad.org/krsZoljq

配列aの要素数はマクロ定義で#define NUMBER 10とし、
問題なく動作しました。
ところが、この要素数10を60に書き換えてみたところ、
コンパイルされたexeファイルを実行しても動作しません。
コンパイラはMinGW(gcc)です。
思い当たる原因を教えていただけないでしょうか。
2019/04/02(火) 20:52:18.32ID:JwQjLW9ya
>>4
codepadが消えてしまっていたのですね、
復元ありがとうございます。
当初は16行目を
int a[] = {0};
と書いていたため上手く動作せず質問した次第です。

前スレで色々とレス頂きありがとうございました。
プログラムを書く際にバッファオーバーランの危険性を考慮する必要があることすら知らないレベルなので、
メモリの使い方を念頭において学習していきます。
C言語は諦めた方がよいというレスもありましたが、
センスがないのは重々承知の上で、腹を括って勉強していくつもりです。
2019/04/03(水) 00:01:40.97ID:qKRJca2S0
>>5
いえ
すみません

「呼び出し元で配列長を管理出来ている。問題はない」と言いうるようです /* むしろ free し忘れる方が問題か */
誤解・不適切な部分があったこと、申し訳なく存じます

色々大変かも知れませんが、頑張ってください
2019/04/03(水) 00:29:12.53ID:kMUljaKF0
>>5
cは非生産的で大したアプリは最初のうちは作れない
しかし覚えれば言語やOSや組み込みなどに手が出せるようになる
独学はイバラの道だが頑張ってね
2019/04/03(水) 14:57:25.86ID:PdcOYuo+0
>「c言語 おすすめしない理由」でググると
>https://www.sejuku.net/blog/3619

sejukuはねーよ
C言語のウソ記事まき散らしたとこじゃねえか
2019/04/03(水) 17:06:47.20ID:jUO0vRXi0
全く以てくだらんな
何言語だろうが関係ねえ話で
習得できなかったやつの言い訳を集めただけの駄文だ

もし「初心者」がここを見ているなら一言いいたい
【 あ ん な の 忘 れ ろ 】
プログラム言語に限らず人生すべてに影響する有害な集団催眠だ
2019/04/03(水) 19:21:17.48ID:6tuZKWrYM
既存のソフト(dll)を引き継いだのですが、そのdll内でバイナリファイルをリードしています。
_open(xxx, _O_BINARY, _S_IREAD) しているのですが、複数のプロセスが同じタイミングでアクセスしても排他処理されないですよね?
どうもうまく読めてないのが原因かもしれない障害が発生して困っています。
どうすれば排他処理できるでしょうか。
2019/04/03(水) 19:55:12.80ID:ZPobjXHOa
読むだけなら排他は要らないんじゃない
2019/04/03(水) 20:00:41.26ID:ZmtTnpp/0
書き込みされたとき、どうなるかな
2019/04/03(水) 20:13:27.48ID:OJDzRIb+0
排他処理の方法を考えようにも情報が少なすぎるよ。
2019/04/03(水) 20:30:58.20ID:6tuZKWrYM
レスありがとございます。
後だしですが、書き込みはされないです。そこまでかんがえてなかったですが。
リードだけなら大丈夫そうですね。だったら他のとこに問題があるのかな・・・
15デフォルトの名無しさん (アウアウウー Sa0f-dxKi)
垢版 |
2019/04/03(水) 20:57:30.11ID:GUjlsyjta
ファイル書いてる最中に読まないようにそのライブラリを使う側と書き込みする側のプログラムでロック掛けるようにするぐらいしか方法ないのでは?
ライブラリのソースもあって自分でも直せるというのなら自分でその辺改造しちゃえば良いんだろうけど。それだったらわざわざここに質問書かんよな?
2019/04/03(水) 21:24:51.36ID:OJDzRIb+0
そもそも1プロセスでもそのファイルをオープンできているのだろうか?
2019/04/03(水) 21:44:31.14ID:NesRjmW10
その障害の内容教えてくれんとな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況