C言語なら俺に聞け 158

■ このスレッドは過去ログ倉庫に格納されています
2021/12/25(土) 12:11:46.61ID:xxeaCAplM
!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
2022/07/09(土) 11:11:08.31ID:8isXQv7m0
>>798 たぶんgcc拡張のポインタ演算の話でしょ。他ではそんなこと言えないから気を付けて。
2022/07/09(土) 12:16:19.03ID:LJ5BAcPW0
>>799
GCCだけど

printf("%d\n", sizeof(void)); // 1

になる。
これGCCだけなん?
2022/07/09(土) 12:23:26.90ID:U9EmutCWd
https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gcc/Pointer-Arith.html
2022/07/09(土) 12:27:53.55ID:LJ5BAcPW0
>>801
へ~知らなかった
2022/07/09(土) 12:31:03.64ID:Pcby8BG30
ではvoid型変数 sを宣言してみて下さい
サイズを測ってご覧にいれます
2022/07/09(土) 12:37:25.10ID:rCvRfQZvM
糞坊主が
2022/07/09(土) 12:39:57.10ID:OQU8CgWM0
屏風に描いたvoidなんつって
2022/07/09(土) 20:15:12.04ID:A5P06KhI0
ヘ_ヘ
ミ・・ ミ
(   )~
2022/07/09(土) 20:56:46.61ID:2FL2bpN80
他人のふんどしで勝負する男の人って‥‥
2022/07/09(土) 21:10:00.31ID:eJjSZ+Lo0
はなししとは?
 ヘ_ヘ
ミ・・ ミ  
(   )~
2022/07/10(日) 01:02:53.42ID:NKXzP1tS0
このスレに50代の者が居ると見た
2022/07/10(日) 01:43:41.30ID:4ppCSg1ba
70までおるじゃろ
2022/07/10(日) 05:01:57.35ID:teKb0H7o0
ム板の寄合所かよ
2022/07/10(日) 15:27:56.20ID:EpSIEDJ/H
>>808
他人のふんどしで勝負する男の人って‥‥
2022/07/10(日) 15:35:59.80ID:IXzc/cv30
みっともねえよな
そんなことまでパクリしかできねえやつ

# 奴が来なくなって20年近く経ってんのに進歩してやがらねえ
2022/07/10(日) 15:38:00.79ID:pOdXKR0zH
>>813
ですよね
2022/07/11(月) 08:40:13.85ID:2XjvtJRn0
voidの長さはよくわからんが、取り敢えずvoid*のインクリ幅を実装の最小単位に取っておけば何でも指せるし、そのアドレス演算に意味を持たせる事も可能になる
どうしてもvoidのサイズを決めたいというのなら、まあ合理的な実装だと思う
2022/07/11(月) 13:22:34.96ID:cGEUsgsp0
void*のインクリ幅に何か意味があるの?
2022/07/11(月) 17:20:33.49ID:lWPgqJ6O0
char*でいいじゃん
なんだかわからないものは「バイト列」だろ
2022/07/11(月) 17:41:30.26ID:TkfF8Lfy0
警告されるから
2022/07/11(月) 17:44:52.74ID:rBy2qCXb0
普通は明示的キャストを介して使うよな
2022/07/11(月) 17:46:10.96ID:POJvWuxZ0
そう。
オブジェクトを指すポインタは void* との間で「暗黙に」変換することが出来る。
最終的に char* にキャストするのだとしてもインターフェイス (仮引数) が void* だとキャストをせずに済む。
memmove とかがそれ。
2022/07/11(月) 22:57:06.26ID:7aXqGp3Qd
なんでも指せるのとインクリメント幅を1にするのは関係ない
むしろインクリメントしようとしたらミスである可能性が高いのでワーニングかエラーにすべき
2022/07/12(火) 07:13:33.37ID:MjEzd7ZRd
ハード的な最小単位へのポインタは欲しいね
charって書くの本当は気持ち悪い
2022/07/12(火) 10:12:07.41ID:AnYAkaOT0
C の仕様上はアドレスを定義できる単位をバイトと呼び、 char は 1 バイトであると定義されてる。
つまり char はハードウェア的な最小単位と言えるが……、まあ名前が良くないのは確か。
2022/07/12(火) 12:14:37.21ID:MjEzd7ZRd
つーか符号がどうたら言われたくない
2022/07/12(火) 17:26:10.54ID:DhrJi4Do0
(char が 7bit の系って生き残ってるのかしら?)
2022/07/12(火) 17:42:00.57ID:4CshQ+Jw0
というかなんでcharってsignedにしてあるんだろ?
char と unsigned charじゃなくてchar と signed char にしてくれていればよかったのにと思わなくもない
intもsignedだし(逆にintがunsignedだったら使いづらいけど)符号付の計算が基本とかあるのかね?
827デフォルトの名無しさん (ワッチョイ a5d2-WFmy)
垢版 |
2022/07/12(火) 17:58:33.14ID:YvrX4qJi0
C++ではcharが符号付きか符号なしかは環境依存だよ
unsigned charともsigned charとも別の型扱いされる不思議な子

たぶんC言語でも同じ扱いだろう
2022/07/12(火) 18:06:57.31ID:ydFOrexCM
charの符号は処理系依存と違ったっけ?
2022/07/12(火) 18:30:46.85ID:AnYAkaOT0
そう。 >>827 の説明が正しい。
char の符号は処理系定義かつ signed char とも unsigned char とも異なる独立した型。
signed char か unsigned char のどちらかと別名という可能性もないので、
C++ のオーバーロードや C の _Generic で三種類に分岐することは出来るよ。

char は整数だから他の整数型との一貫性で考えれば符号付きになるのが自然なようにも思えるが……、
実行基本文字集合は char で (char が符号有りだとしても) 正の値になることを
要求している (C99 だと 6.2.5 に書いてある) ので各環境が採用している文字コードによっては
符号無しにせざるを得なかったのだと思う。
EBCDIC とかだとどうしてもそうなる。

まあ負の文字コードが有っても辻褄合わせは出来たとは思うんだが、
仕様が成立した時点でそうでない想定をしているコードが結構あったりしたんじゃないかな。
2022/07/12(火) 18:31:52.31ID:xJzxH9jqa
>>825
規格では8bit以上だったはず
http://www.bohyoh.com/CandCPP/FAQ/FAQ00013.html
2022/07/13(水) 11:20:33.14ID:Zw91A11j0
>>829
>まあ負の文字コードが有っても辻褄合わせは出来たとは思うんだが、
比較の際に暗黙で走る int への格上げの時にややこしくなりそうやね

char ch;
...
if (ch >= 0x80) // 上位ビット立ってる?
2022/07/13(水) 11:53:33.59ID:CCByLcFJM
&buf[0] ってbufと同じだよな?
なんか意味あんのこの書き方?
2022/07/13(水) 12:43:05.67ID:hH7ZnQ+pM
&buf[0] 配列の先頭要素のアドレス
buf 配列の先頭のアドレス
同じ

sizeof(&buf[0]) 配列の先頭要素のサイズ
sizeof(buf) 配列のサイズ
異なる

配列の要素数を求める場合
sizeof(buf)/sizeof(&buf[0])
で頻出する
2022/07/13(水) 12:44:54.67ID:WjRfIVOeM
センキュー
2022/07/13(水) 12:52:57.77ID:H8j4+v2od
>>833

>配列の要素数を求める場合
>sizeof(buf)/sizeof(&buf[0])
>で頻出する

ダウト。sizeof(buf)/sizeof(buf[0])の間違い。
2022/07/13(水) 14:23:32.52ID:Kb1eM8RI0
>>832
配列の先頭としての意味よりその要素に意味があるということを強調した雰囲気を表すためにそういう書き方をすることはあるよ。
仕様としての解釈 (動作) に差が無い場面であっても人が読む上では雰囲気の差はある。
2022/07/13(水) 16:51:43.98ID:Zw91A11j0
添え字が非0 のとき &buf[1] か buf+1
添え字が0 のとき &buf[1] か buf+0 か buf か

同じコードになるけど記述に意味を見出すかどうか
838デフォルトの名無しさん (アウアウウー Sa09-2HoA)
垢版 |
2022/07/13(水) 17:38:26.38ID:H0DndFW/a
_countof使わないのか
2022/07/14(木) 13:40:03.36ID:m4fVu3Vb0
配列の大きさを知る演算子くらい標準入りしてもよさそうなもんだとは思う。
2022/07/14(木) 13:46:25.72ID:YnALXIBFd
ポインタに使うアフォが出てくるに1ペリカ
2022/07/14(木) 14:14:28.24ID:m4fVu3Vb0
むしろ、イディオムやマクロによる素朴な実装だとポインタを渡してもエラーなく通過してしまうからこそ
言語の機能として提供して然るべきだと思うよ。
2022/07/14(木) 14:49:53.54ID:abQKMdR+a
結局、配列が無いのが問題、みたいな
2022/07/14(木) 15:26:18.20ID:fgF/JGu/0
配列とは別に文字列型作れば良かったのかな
2022/07/15(金) 19:30:20.65ID:r8EwCLZ2d
それを言ったら破門だよ
2022/07/15(金) 22:46:23.97ID:vZ8IDyva0
string_t *s = str_alloc();
2022/07/17(日) 00:26:30.17ID:1DBmbCgq0
char a[32];
char b[32];

fp = fopen("abc.csv", "r");
for(; fscanf(fp,"%[^,],%s%s", a, b) != EOF; ){
printf("%s %s\n", a, b);
}
fclose(fp);
2022/07/17(日) 00:28:02.51ID:1DBmbCgq0
test.c:23:31: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat=]
for(; fscanf(fp,"%[^,],%s%s", a, b) != EOF; ){
           ^^
問題なく動くんですが、上のような警告が出ます。
気にしなくても良いですか?
2022/07/17(日) 01:16:21.70ID:RIt+yucva
&a[0]にでもしたらいいかもな
警告出さなきゃ出ないんじゃなかったかな
2022/07/17(日) 04:38:20.42ID:tV/KWY8I0
指定子の数と引数の数が合ってないのでは?
2022/07/17(日) 09:31:19.06ID:5kV34GW+0
%s は1つで良いんじゃね?
2022/07/17(日) 09:48:19.50ID:gh7Bz7cid
%sが多いね
あと32バイト以上あったらクラッシュするけどいいの
2022/07/17(日) 11:10:26.64ID:tV/KWY8I0
>>846
そのコードで問題なく動くならabc.csvがかなり特殊な形式だと思う

https://ideone.com/haAzIG
2022/07/17(日) 12:37:05.79ID:Fwel5trjd
最初の%[^,]でa[]にコンマの前までが取られて
次の%sが行末までをb[]に取るから
その次の%sをコピーするポインタが指定されてないので本来はここでクラッシュするけど
前の%sで行末に行ってるのでこの%sは必ず無視されるという綱渡り状態
直しておいたほうがいいよ
2022/07/18(月) 00:57:42.77ID:i3ini+Eo0
サンクス(´・ω・`)
855デフォルトの名無しさん (アウアウウー Sa39-3+h2)
垢版 |
2022/07/21(木) 23:01:29.27ID:qNAIu8qZa
生徒数と科目数と点数をキーボードから入力し、それぞれの科目数の個人、全体の合計点数、(科目数の個人、全体の)平均点をそれぞれ出すプログラミングをやっているのですが、全く分からないので教えてください。
2022/07/21(木) 23:24:42.74ID:25qjJOkGr
キーボードから入力する方法がわからないのか、平均点をだす方法がわからないのか?
2022/07/21(木) 23:58:01.60ID:tQt8NkV/0
多分学校の宿題かなにかなんだろうが、
言葉足らずで相当補わないと問題が分からない
出題されたまんまの内容を書いてみてくれないか
2022/07/22(金) 01:39:33.12ID:fX2QhDiX0
「全く分からない」に対してわかるように教えるには入門書の頭から説明しないと理解できない状態ってことだからなぁ。
それなら普通に入門書を読むべき (その上でどうしても理解できない箇所があるならそれを質問すべき) という話だし、
理解する気が無くてそういうプログラムが欲しいだけなら宿題スレに投下したほうがいい。
2022/07/22(金) 03:00:46.63ID:GQs5tpkHd
質問者です

僕は答えだけが欲しいんです。どうして説教なんかしてくるんですか?

貴方達は黙ってコードを書いてくれるだけでいいんです。それ以外のことを私は貴方達に求めていません

ご回答よろしくお願い致します
2022/07/22(金) 04:01:58.51ID:9CWw4cOJd
成績を収める配列変数を宣言して下さい。
ループ変数iとforループを使ってデータ入力する処理を記述して下さい。
ループ変数iとforループを使って合計を求める処理を記述して下さい。
合計と件数より、平均値を計算して下さい。
2022/07/22(金) 13:35:19.04ID:63Xcy7bk0
>>859
回答するから駅前でパンツ脱いで待ってろ
2022/07/22(金) 13:53:06.84ID:o6RHeQNrM
jkの視線が辛いです…
2022/07/22(金) 16:50:00.97ID:FTsytUCEd
近道を教えてください
目的地?そんなもの知らん
いじわるしないで近道だけ教えてくださいよ
2022/07/22(金) 17:05:43.46ID:5FG7Keur0
だから宿題スレ逝けってば
2022/07/22(金) 17:48:50.97ID:xVgLzEHZ0
他人にコード書いてもらいたいならお金払うのが常識だぞ
勉強になったな
866デフォルトの名無しさん (ワッチョイ daad-Vb2/)
垢版 |
2022/07/22(金) 18:36:47.63ID:iW5ae+Pc0
>>859
別人か?
釣りか?
スレを活性化させるための煽りか?
2022/07/22(金) 20:52:21.05ID:6vEMzc8Xd
>>866
別人です
釣りです
スレを活性化させるための煽りです

そもそもワッチョイ見れば分かるけどキャリア違うし
>>863も同じような輩でしょ
2022/07/22(金) 21:13:42.27ID:axiBU42YH
炎上学習法がはじまりました…
2022/07/22(金) 22:22:56.34ID:V/ouQpU1d
>>867
皮肉って概念を聞いたことあるかね
870デフォルトの名無しさん (ワッチョイ daad-Vb2/)
垢版 |
2022/07/22(金) 23:07:49.17ID:iW5ae+Pc0
そういや Excel 使った方が楽にできそうな問題だな。
2022/07/23(土) 06:55:01.01ID:GjOkJS/b0
絶望的に適性ないやつがいるな
そんな無駄なことは今すぐやめろ
限りある人生をもっと有意義なことに使え
872デフォルトの名無しさん (ワッチョイ 13ad-CF/B)
垢版 |
2022/07/23(土) 20:24:50.53ID:xI/QpgaL0
たとえば?
2022/07/23(土) 20:54:12.53ID:ZMU4WQ2EH
>>871
1.適性がない、というその適性を定義してください。
2.適性がない、となぜ判断したのか 1. をもとに詳しく記述してください
3.1.2.が出来ないのではないのならば、あなたこそ、あなたのいう適性をもちあわせていない、と私は判断します
以上
2022/07/23(土) 21:02:39.58ID:qM4duTiyd
エラーや不具合があったときに理屈じゃなくて直感ですぐに原因が思いつくタイプは適性があると思う
経験で補えるっちゃ補えるけど
2022/07/23(土) 22:07:51.06ID:HvDaSJUkd
>>873
あんたの判断がどうかしたのか
2022/07/23(土) 22:19:32.27ID:KvepzSxm0
当社比
2022/07/23(土) 23:01:14.87ID:FDsLOdQw0
>>874
人間の無意識領域が活発に活動している証拠ですね
最近は前野隆司氏の受動意識仮説に心惹かれます
実験心理学からは「準備運動電位」がずいぶん前に提示されていますが、今はどこまでわかっているのでしょうか?

https://mevius.5ch.net/test/read.cgi/tech/1556284220/703
https://mevius.5ch.net/test/read.cgi/tech/1640401906/23
2022/07/24(日) 06:47:50.60ID:cLNfquIV0
>>873
どうした、頭に血が昇ってw
身に覚えがあるんだろ

別に俺が定義しようがしまいが関係ない
おまえが直面している現実が全てだ

コード書けねえんだろバーカw
そんなん俺は厨房の頃からやってたぜ
当時はBASICすらなく機械語だった
やるやつは人のせいになんかしねえんだよ
2022/07/24(日) 07:04:34.40ID:gwuc5Le4d
ジジイがイキってるの悲しすぎるな
キャリア積んだおっさんならもうコードなんて書いてないのに
2022/07/24(日) 07:35:48.77ID:kz71o77Jd
>>874
経験がないとそんなことは無理だな
経験によって結果から原因を推定するデータベースを増やしているに過ぎない
生まれつきプログラマになるべく生まれた人間などいないw
2022/07/24(日) 08:01:42.09ID:QsSUkFLAM
直感というより論理(左脳)と感性(右脳)のどちらの活性が高いかの違い
2022/07/24(日) 08:03:50.29ID:bdlqmtah0
>>880
同じ事象に遭遇しても原因を自分でちゃんと究明して対策してる奴と人に言われて直すだけの奴だと取得する経験値がだいぶ違うだろ
そういう意味での適性はあると思う
2022/07/24(日) 08:41:03.73ID:mCJq3UO5d
>>879
何も知らねえネンネだなw
熟練者を歳だけでやめさせるバカ企業が
今どうなってるか見りゃわかるだろめくら
IT業界だけ特別とでも思ってんのか

昭和の一時期だけ特別だったが
いい歳こいたジジイが言ってんなら
進化の止まった化石はてめーだ
2022/07/24(日) 09:04:36.35ID:gwuc5Le4d
>>883
コーダージジイ効いてて草
こういうやつってマジでガキに見えるよなー
人の上に立った経験とか一度も無さそう
2022/07/24(日) 10:46:43.07ID:Zzdkl5Gk0
>>880
しかし、生まれつき、あるいは育ちのせいであるのかもしれませんが、無意識領域が活発に活動しやすい人、というのはあるかもしれませんよ
人はそれを「閃きの人」と呼ぶようですが
そして無意識領域がよく働く人はプログラマの適性があるといってもいいでしょうね

https://mevius.5ch.net/test/read.cgi/tech/1556284220/703
https://mevius.5ch.net/test/read.cgi/tech/1640401906/23
2022/07/24(日) 11:42:01.96ID:W6pjxqRvM
閃き改変スパゲティ
887デフォルトの名無しさん (ワッチョイ 13ad-SXL5)
垢版 |
2022/07/24(日) 16:22:46.57ID:9ixHhHoi0
BASICもない時代か。
俺の時は TK-80 に BS 乗っかったやつが BIT-INN に並んでたな。カラーの COMPO-BS もあった。
その他 Apple ][、PET、TRS-80、BASIC MASTER Level 2、MZ-80K 等がある時代で、フロッピーディスクが Apple のやつは1枚2000円だったかな?
2022/07/24(日) 16:31:31.34ID:95dB6L1Ta
COMPOにカラーなんてあった?
889デフォルトの名無しさん (ワッチョイ 13ad-SXL5)
垢版 |
2022/07/24(日) 16:45:38.99ID:9ixHhHoi0
>>888
なかったっけ? あったような気がするんだが。
PC-8001 の画面の見間違いではないと思う。まだ出てなかったし。
2022/07/24(日) 16:49:13.87ID:cLNfquIV0
>>884
コード書けねえ産業廃棄物がコーダー馬鹿にしてんな
フリーターだのニートだのってレベルの稼ぎの扶養虫にしかなれる見込ねえくせに
俺は生まれながらの帝王だ退かぬ媚びぬ省みぬだと? ぶわははは

這い上がる気力のねえやつに栄光はねえんだよ、憶えておきな
2022/07/24(日) 17:04:41.33ID:xRzJF5neF
>>885
受動意識みたいなオカルトに構っていてはプログラマにはなれませんよ
プロの仕事にはすべて説明可能なことが求められます
どこかのリモートで動いてる端末人間にプログラムはできません
2022/07/24(日) 17:18:29.98ID:bdlqmtah0
なかったと思うよ、そもそもCOMPO-BS/80はキャラクター表示しかできないし
2022/07/24(日) 17:25:59.63ID:C0umvz7vH
>>891
デバッグ箇所の発見にも説明が求められるのですか?バグが修正されたことを証明できれば十分なのではないでしょうか?
2022/07/24(日) 17:34:50.38ID:cLNfquIV0
発見に至る思考過程はいらんな
ドライに事実関係の説明のみで足りる

犯人探しは俺らの仕事ではなく
下手に口を出すとこっちが立場悪くなる
2022/07/24(日) 18:23:35.95ID:nci3iowod
>>893
>デバッグ箇所の発見
バグ箇所のことかな
どうしてそのようなバグが発生したかまで明確にしないと
同じバグがまた起こるだろう
2022/07/24(日) 18:43:56.60ID:3i0SwxtcH
>>895
話をずらしましたね

私は
>デバッグ箇所の発見
つまり、どこから手をつければいいか当たりをつける能力について言及したのであって、発見したバグの振る舞いについて説明する必要はないとはいっていませんね

話をずらしてはいけませんよね
2022/07/24(日) 18:49:15.54ID:DQlWH9SB0
どこにバグがあるか、ゴーストがささやいてくれる
2022/07/24(日) 18:52:37.42ID:cLNfquIV0
言い逃れの天才はいらねーよ
頼むから志願してくんな
ゴミ処理だけでどんだけ負担か考えろ馬鹿が
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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