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言語なら俺に聞け 147
http://mevius.5ch.net/test/read.cgi/tech/1534430162/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 148
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウカー Sacf-slpW)
2018/09/19(水) 17:56:50.83ID:XSTNMnDwa2デフォルトの名無しさん (ワッチョイ 9f02-okpm)
2018/09/19(水) 18:46:51.43ID:5wa+YDhW0 JPCERTに書いてある
> DCL12-C. 抽象データ型は opaque な型を使って実装する
これ、言葉遣いが JIS に準拠してないね
- opaque な型
+ 不完全型
> DCL12-C. 抽象データ型は opaque な型を使って実装する
これ、言葉遣いが JIS に準拠してないね
- opaque な型
+ 不完全型
3デフォルトの名無しさん (アウアウカー Saeb-ACtO)
2018/09/19(水) 18:51:06.87ID:SdGhFMnDa おぱきゅー
4さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-knbE)
2018/09/19(水) 18:52:22.93ID:sSjeJI6sd おぺいきゅー
5デフォルトの名無しさん (ワッチョイ 5793-mIvp)
2018/09/19(水) 20:53:36.31ID:6LbAKjXm0 あのね opaque を「おぱきゅー」と読むとね、
中がどうなっているか見えないって感じがヒシヒシ伝わるんだよ。
中がどうなっているか見えないって感じがヒシヒシ伝わるんだよ。
6デフォルトの名無しさん (アウアウカー Saeb-slpW)
2018/09/19(水) 21:01:51.92ID:zcXFtBV7a opaque音頭
7デフォルトの名無しさん (ワッチョイ 7f23-okpm)
2018/09/19(水) 21:10:39.04ID:kKUGVzPQ0 ドラハッパー?
8デフォルトの名無しさん (ブーイモ MMbb-ck2F)
2018/09/19(水) 21:40:07.01ID:aiIpKBDGM >>5
寧ろ向こう側が透けて見えて意味を取り違えそうな…
寧ろ向こう側が透けて見えて意味を取り違えそうな…
9デフォルトの名無しさん (アウアウカー Saeb-slpW)
2018/09/19(水) 21:46:14.52ID:zcXFtBV7a 透けるトン
10デフォルトの名無しさん (ワッチョイ 9780-9b2l)
2018/09/19(水) 22:44:21.77ID:xLP4ypV20 おおきいおっぱいを占領する
11デフォルトの名無しさん (アウアウカー Sae9-kke4)
2018/09/20(木) 12:33:56.62ID:irJ5n1n9a おっぱいがキューイングされてる状態だろ
12デフォルトの名無しさん (アウアウカー Sae9-rLjT)
2018/09/20(木) 12:46:40.86ID:rEtRtbV+a キューは口を尖らせて発音
13デフォルトの名無しさん (JP 0Hc9-e5An)
2018/09/20(木) 13:32:01.11ID:6Uvn6M6wH 俺氏、マジレスするタイミングを完全に失う
14デフォルトの名無しさん (アウアウカー Sae9-KpFT)
2018/09/20(木) 14:06:56.92ID:4xeYkQf2a 不可視を不完全と呼ぶのはちょっと良くないと思うわ
まあ視点が違うんだけども
まあ視点が違うんだけども
15デフォルトの名無しさん (ワッチョイ 6202-coYL)
2018/09/20(木) 15:50:43.96ID:kJMlDz7M0 ピンプル的な意味で「見えない」なら合ってんじゃん
16デフォルトの名無しさん (ワッチョイ c964-vX2D)
2018/09/20(木) 19:19:48.48ID:fVTsYrUH0 みんなmusl libcとか使ってたりする?
プロジェクトの内容だけみると けっこう良さげなんだけど
あまり日本語の情報を聞かないし 実際はglibcとかが大半なのかな。
プロジェクトの内容だけみると けっこう良さげなんだけど
あまり日本語の情報を聞かないし 実際はglibcとかが大半なのかな。
17デフォルトの名無しさん (ワッチョイ be23-coYL)
2018/09/21(金) 11:19:07.18ID:7KdLYb7A0 CはGNUが9割
18デフォルトの名無しさん (ワッチョイ 6976-Syfo)
2018/09/21(金) 17:35:46.83ID:r4ObfaEn0 c言語本格入門のリスト構造(単方向リスト)が理解できず困っています。
書籍には図を書けば理解できるとあり、ソースにprintf関数をところどころに入れて、ポインタの動きを追いかけていたのですが、余計こんがらがってしまいます。
他のサイトや他者の質問が掲載された掲示板なども参考にしましたが、さっぱりわかりません。
図を描いても理解には繋がりません。
プログラムは250行くらいあり、掲載出来る様なサイトがあれば誘導お願いします。
ポインタの*ptr_now、*ptr_before、*ptr_new の動きと役割が理解できれば、前に進めると思うのですが、知恵を貸して下さい。
書籍には図を書けば理解できるとあり、ソースにprintf関数をところどころに入れて、ポインタの動きを追いかけていたのですが、余計こんがらがってしまいます。
他のサイトや他者の質問が掲載された掲示板なども参考にしましたが、さっぱりわかりません。
図を描いても理解には繋がりません。
プログラムは250行くらいあり、掲載出来る様なサイトがあれば誘導お願いします。
ポインタの*ptr_now、*ptr_before、*ptr_new の動きと役割が理解できれば、前に進めると思うのですが、知恵を貸して下さい。
19デフォルトの名無しさん (ワッチョイ c123-o0nc)
2018/09/21(金) 17:44:45.17ID:TewjjbP3020デフォルトの名無しさん (アウアウエー Sa4a-KpFT)
2018/09/21(金) 17:46:57.36ID:DzWt0PfVa nowが今いる所でbeforeがさっきいた所でnewが新たに作る所?
21デフォルトの名無しさん (ワッチョイ 6976-Syfo)
2018/09/21(金) 18:05:52.26ID:r4ObfaEn0 >>18
now と before は作業用領域で、newは名前とかを格納しています。
now と before は作業用領域で、newは名前とかを格納しています。
22デフォルトの名無しさん (ブーイモ MM05-Nssn)
2018/09/21(金) 18:39:31.34ID:FeY49FdEM >>18
とある位置に新しいデータを挿入するサンプルコードなんじゃないか?
newが新たに挿入しようとするデータのアドレス、
nowが挿入先の直後のデータのアドレス、
beforeが挿入先の直前のデータのアドレス。
(単方向リストへのデータ挿入は新しいデータを挿入する位置の前後のデータのアドレスが必要のため)
ところでnowってスケジュールリストか何かなのか
とある位置に新しいデータを挿入するサンプルコードなんじゃないか?
newが新たに挿入しようとするデータのアドレス、
nowが挿入先の直後のデータのアドレス、
beforeが挿入先の直前のデータのアドレス。
(単方向リストへのデータ挿入は新しいデータを挿入する位置の前後のデータのアドレスが必要のため)
ところでnowってスケジュールリストか何かなのか
23デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/21(金) 18:44:04.65ID:M1mNaNG00 >>18
努力しているようだが、色々おかしい。
> ソースにprintf関数をところどころに入れて、ポインタの動きを追いかけていたのですが
ポインタの『動き』ではなく、ポインタの『中身』を追いかけろ。
ポインタは自然言語で言う「ポイントする(指し示す)もの」でしかないから、
正しい物を示しているかどうかだけであって、
それはポインタ自体ではなく、『中身』を見ないと判定出来ない。
> 単方向リスト
> *ptr_now、*ptr_before、*ptr_new
単方向リストならポインタは一つだけだし、
> now と before は作業用領域で、newは名前とかを格納しています。
名前の付け方が絶望的におかしい。
多分君の理解が間違っているだけだと思うが、
もしその理解が正しくて、ガチでこんな名前を付けているソースなら、
その本は今すぐ捨てるべきだ。
これはソースを上げれば誰かが見てくれるだろう。
(多分>>22が当たりだろう)
当たり前だが、
1. まず、0,1,2,3... とリストに入れて、それを表示(リストアップ)出来る関数を作れ。
2. 次に、その関数を用いて、挿入等したとき、期待通りにリストアップ出来るか確認しろ。
3. それでバグっているようなら、その後でいちいちIDE等で止めてポインタの値を確認するんだよ。
多分お前はデバッグの仕方もおかしい。
ただまあ正直なところ、このレベルの初心者ならリストなんてどうせ使わないし、
スキップしても構わんぞ。いちいち全部やらなくてもいい。
そんなことより、ゲームを作りたいのならそのゲームを作る方向目指してコーディングしろ。
そのうち、ポインタ等の意味も分かってきて、今回の問題なんて自然に解決出来るようになる。
努力しているようだが、色々おかしい。
> ソースにprintf関数をところどころに入れて、ポインタの動きを追いかけていたのですが
ポインタの『動き』ではなく、ポインタの『中身』を追いかけろ。
ポインタは自然言語で言う「ポイントする(指し示す)もの」でしかないから、
正しい物を示しているかどうかだけであって、
それはポインタ自体ではなく、『中身』を見ないと判定出来ない。
> 単方向リスト
> *ptr_now、*ptr_before、*ptr_new
単方向リストならポインタは一つだけだし、
> now と before は作業用領域で、newは名前とかを格納しています。
名前の付け方が絶望的におかしい。
多分君の理解が間違っているだけだと思うが、
もしその理解が正しくて、ガチでこんな名前を付けているソースなら、
その本は今すぐ捨てるべきだ。
これはソースを上げれば誰かが見てくれるだろう。
(多分>>22が当たりだろう)
当たり前だが、
1. まず、0,1,2,3... とリストに入れて、それを表示(リストアップ)出来る関数を作れ。
2. 次に、その関数を用いて、挿入等したとき、期待通りにリストアップ出来るか確認しろ。
3. それでバグっているようなら、その後でいちいちIDE等で止めてポインタの値を確認するんだよ。
多分お前はデバッグの仕方もおかしい。
ただまあ正直なところ、このレベルの初心者ならリストなんてどうせ使わないし、
スキップしても構わんぞ。いちいち全部やらなくてもいい。
そんなことより、ゲームを作りたいのならそのゲームを作る方向目指してコーディングしろ。
そのうち、ポインタ等の意味も分かってきて、今回の問題なんて自然に解決出来るようになる。
24デフォルトの名無しさん (フリッテル MMd6-l/4I)
2018/09/21(金) 19:29:46.56ID:820RD++bM いちいちそんなに長文で噛み付くようなことか?
25デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/21(金) 19:50:07.83ID:M1mNaNG00 >>22
ちなみに細かいようだが、
> (単方向リストへのデータ挿入は新しいデータを挿入する位置の前後のデータのアドレスが必要のため)
実際の所、単方向リストなら
struct List {
T value; // または T* ptr;
T* next;
};
だから、ループは now と next だけで構成しないと筋が悪いんだけどね。
ソート済みリストでデリミタがヌルポなら、
while (now->next && value <= next->value) now = next; // 同値なら挿入順
で now を確定させ、now と next の間に挿入する。
nowは「今」、newが「新」として、beforeは余計だね。
何かの説明をする為なのだろうけど、余計におかしくなってる。
(挿入するのは『nowとnext』の間であって、『beforeとnow』の間ではない)
ちなみに細かいようだが、
> (単方向リストへのデータ挿入は新しいデータを挿入する位置の前後のデータのアドレスが必要のため)
実際の所、単方向リストなら
struct List {
T value; // または T* ptr;
T* next;
};
だから、ループは now と next だけで構成しないと筋が悪いんだけどね。
ソート済みリストでデリミタがヌルポなら、
while (now->next && value <= next->value) now = next; // 同値なら挿入順
で now を確定させ、now と next の間に挿入する。
nowは「今」、newが「新」として、beforeは余計だね。
何かの説明をする為なのだろうけど、余計におかしくなってる。
(挿入するのは『nowとnext』の間であって、『beforeとnow』の間ではない)
26デフォルトの名無しさん (ワッチョイ 42c8-coYL)
2018/09/21(金) 19:54:01.86ID:7TX+3hKV0 そもそもポインタ自体分かってない説
27デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/21(金) 19:58:44.97ID:M1mNaNG00 >>24
駄目な事を駄目だとはっきり言っただけだ。
怒られたことのないゆとりには噛みついているようにしか見えないのかもしれないが、
このレベルの駄目っぷりを駄目出ししてもらえない方が問題だろ。
これが許容出来ないのなら、コテハン制の他サイトに行けよ。
どんなアホな投稿でも優しく教えてくれるだろうさ。
ただそれが本人の為になるかどうかはまた別だが、ゆとりにはお似合いだ。
右も左も分かってない馬鹿なんだから普通にIDE使えよ。
printfデバッグなんて(IDEが有料だった昔はさておき)
今のそのレベルの初心者がやるもんじゃない。
まあしかし、お前がそういうのならお前が導いて見せろ。
出来もしないのに文句だけ言うのもゆとりの特徴だとも思うがね。
駄目な事を駄目だとはっきり言っただけだ。
怒られたことのないゆとりには噛みついているようにしか見えないのかもしれないが、
このレベルの駄目っぷりを駄目出ししてもらえない方が問題だろ。
これが許容出来ないのなら、コテハン制の他サイトに行けよ。
どんなアホな投稿でも優しく教えてくれるだろうさ。
ただそれが本人の為になるかどうかはまた別だが、ゆとりにはお似合いだ。
右も左も分かってない馬鹿なんだから普通にIDE使えよ。
printfデバッグなんて(IDEが有料だった昔はさておき)
今のそのレベルの初心者がやるもんじゃない。
まあしかし、お前がそういうのならお前が導いて見せろ。
出来もしないのに文句だけ言うのもゆとりの特徴だとも思うがね。
28デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/21(金) 20:02:21.86ID:M1mNaNG00 てゆーかマジな話、250行って何だよ?
27のリストなら精々50行だろ。
色々根本的におかしい。
本ではなく、18が根本的に間違ってるんだと思うが。
27のリストなら精々50行だろ。
色々根本的におかしい。
本ではなく、18が根本的に間違ってるんだと思うが。
29デフォルトの名無しさん (ワッチョイ 42c8-coYL)
2018/09/21(金) 20:16:03.47ID:7TX+3hKV0 >>21
名前ってまさか構造体の名前じゃないよね・・?
名前ってまさか構造体の名前じゃないよね・・?
30デフォルトの名無しさん (ワッチョイ 2260-9U/T)
2018/09/21(金) 21:44:03.41ID:JP8I8TZy031デフォルトの名無しさん (アウアウカー Sae9-rLjT)
2018/09/21(金) 22:15:10.02ID:ZlhIYDcEa うまい釣りだ。このままじらしてじらしていつまでもソースを公開しなければこのスレは活性化して書き込みで溢れあっという間に3スレぐらい消費するだろう。流石としか言いようがない。
32デフォルトの名無しさん (ワッチョイ 42c8-coYL)
2018/09/21(金) 22:19:08.59ID:7TX+3hKV0 悔しいでも書き込んじゃう
33デフォルトの名無しさん (ワッチョイ c980-yqSl)
2018/09/22(土) 00:33:04.56ID:PGp2AKzL0 低学歴知恵遅れには質問の意味が理解できない
普通に質問の内容を再現すればだいたいこうなる
typedef struct tag_aho_list_t {
char new[0x10];
t_aho_list_t* next;
} t_aho_list_t;
ptr_new = (t_aho_list_t*)malloc(sizeof(t_aho_list_t));
strcpy(ptr_new->name, "aho1");
ptr_before = ptr_now;
ptr_now = ptr_new;
ptr_before->next = ptr_now;
ptr_new = (t_aho_list_t*)malloc(sizeof(t_aho_list_t));
strcpy(ptr_new->name, "aho2");
ptr_before = ptr_now;
ptr_now = ptr_new;
ptr_before->next = ptr_now;
普通に質問の内容を再現すればだいたいこうなる
typedef struct tag_aho_list_t {
char new[0x10];
t_aho_list_t* next;
} t_aho_list_t;
ptr_new = (t_aho_list_t*)malloc(sizeof(t_aho_list_t));
strcpy(ptr_new->name, "aho1");
ptr_before = ptr_now;
ptr_now = ptr_new;
ptr_before->next = ptr_now;
ptr_new = (t_aho_list_t*)malloc(sizeof(t_aho_list_t));
strcpy(ptr_new->name, "aho2");
ptr_before = ptr_now;
ptr_now = ptr_new;
ptr_before->next = ptr_now;
34デフォルトの名無しさん (ワッチョイ f94f-yqSl)
2018/09/22(土) 01:01:16.23ID:16ZpsTnK0 >>33
お前も絶望的にダサいコードを書くな。
追加なら、
> ptr_before = ptr_now;
> ptr_now = ptr_new;
> ptr_before->next = ptr_now;
ではなくて、
ptr_now->next = ptr_new;
ptr_now = ptr_new;
だろ。
つか、単方向リストで before を使う時点で間違い。
お前も絶望的にダサいコードを書くな。
追加なら、
> ptr_before = ptr_now;
> ptr_now = ptr_new;
> ptr_before->next = ptr_now;
ではなくて、
ptr_now->next = ptr_new;
ptr_now = ptr_new;
だろ。
つか、単方向リストで before を使う時点で間違い。
35デフォルトの名無しさん (ワイモマー MM62-Y32S)
2018/09/22(土) 01:01:57.05ID:alaCe2UCM で?ってゆう
36デフォルトの名無しさん (ワッチョイ 6976-Syfo)
2018/09/22(土) 01:22:57.20ID:e+ifojdT0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「やっぱり顔採用かよ…」就活生を襲う“見えないルッキズム”の現実 [七波羅探題★]
- カードじゃなくて「紙」が活躍中…健康保険の「資格確認書」 大きすぎて困惑する人も [蚤の市★]
- 「5人が抱き合う遺体発見」香港高層火災、150人安否不明 警察はボランティア警戒 [蚤の市★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★9 [ぐれ★]
- 日銀が円安進行を警戒 物価高に懸念、利上げ観測も きっかけは高市首相の経済対策で財政規律が悪化するとの懸念による「日本売り」 [ぐれ★]
- 新潟名物の笹団子、「クマ出没」や「猛暑」で大ピンチ…国産ササの葉「急激に手に入らなくなった」 一部を中国産に頼る現状 [ぐれ★]
- 【悲報】ネトウヨ「命をかけて祖国を守った特攻隊を馬鹿にするな!」この理屈なんなの・・・😰 [616817505]
- 【高市悲報】冬のボーナス、民42万、公77万wwwww [246620176]
- 映画館、2,200円が主流になっていよいよおわる [329329848]
- やっぱ国内で飛行機移動って楽だわ、ケツ取れないし [943688309]
- 【悲報】中国人観光客、一斉帰国wwwwwwwww「いまだに日本に居るなんて周りにバレたら白い目で見られる」 [271912485]
- 🏡
