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言語なら俺に聞け 144
https://mevius.5ch.net/test/read.cgi/tech/1514025223/
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 145
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん (ワッチョイ 9381-qput)
2018/02/19(月) 22:13:58.98ID:9/te2eSJ0 >>819
Y コンビネーターとか、どうですか?
Y コンビネーターとか、どうですか?
821デフォルトの名無しさん (スプッッ Sd1f-E7pr)
2018/04/15(日) 20:33:38.79ID:8Bp5iafSd822デフォルトの名無しさん (ワッチョイ a39f-/JlG)
2018/04/15(日) 20:35:56.05ID:IgQGrpHk0823デフォルトの名無しさん (ワッチョイ a304-x9ai)
2018/04/15(日) 21:29:24.63ID:7zIgNBcs0824デフォルトの名無しさん (ワッチョイ a350-96DA)
2018/04/15(日) 23:30:02.09ID:sXJBpbWg0 この板でチューリング完全て言葉をみるとは思わなかった
825デフォルトの名無しさん (アウアウカー Sa47-QFn6)
2018/04/15(日) 23:59:29.91ID:L6Qt+I9Ha だいたい、どう抽象化するのがええのかって話でチューリング完全は関係ないからねえ。
前提としてはそうでないとあかんかも知れんけど。
前提としてはそうでないとあかんかも知れんけど。
826デフォルトの名無しさん (ワッチョイ a39f-/JlG)
2018/04/16(月) 00:40:26.76ID:qQ0bjYjD0 抽象化については「オブジェクト指向」で今のところ決着してるだろ。
これを否定する見解や言語は無いと思うが。
これを否定する見解や言語は無いと思うが。
827デフォルトの名無しさん (ワッチョイ a311-d/7d)
2018/04/16(月) 04:32:33.72ID:94linQhp0 コンビネータでも実装するか?
828デフォルトの名無しさん (ワッチョイ a39f-/JlG)
2018/04/16(月) 23:38:04.25ID:qQ0bjYjD0 >>820
>>827
お前ら知ってるのならそのメリットを(出来れば具体的に)書いてみてくれないか?
一応Wiki読んだが、
> 明示的に再帰を書かずに再帰を実現する為に用いる事ができる。
> なお、一般にそういった言語では普通に再帰が使えるので、
> プログラミングにおいてはパズル的なテクニック以上の意味は無い。
> https://ja.wikipedia.org/wiki/%E4%B8%8D%E5%8B%95%E7%82%B9%E3%82%B3%E3%83%B3%E3%83%93%E3%83%8D%E3%83%BC%E3%82%BF
なら、いらねえし、採用されることはないと思うが。
>>827
お前ら知ってるのならそのメリットを(出来れば具体的に)書いてみてくれないか?
一応Wiki読んだが、
> 明示的に再帰を書かずに再帰を実現する為に用いる事ができる。
> なお、一般にそういった言語では普通に再帰が使えるので、
> プログラミングにおいてはパズル的なテクニック以上の意味は無い。
> https://ja.wikipedia.org/wiki/%E4%B8%8D%E5%8B%95%E7%82%B9%E3%82%B3%E3%83%B3%E3%83%93%E3%83%8D%E3%83%BC%E3%82%BF
なら、いらねえし、採用されることはないと思うが。
>>828
その wikipedia の解説はちょっと本質からはずれている気がする
「明示的な識別子を含まないで再帰関数が記述できる」くらいか
ラムダ表現を採用している、というのなら不動点コンビネータくらいは記述できないといけないのではないか?
いいかえれば不動点コンビネータを表現できないラムダ表現は「何か大事な部分が欠けている」
ラムダ表現は理論的なモデル(計算可能性を論じるなど)として考案されたもので、実用とか効率とかからは遠く離れている
ラムダ表現を売りにする言語(lisp とか)ならともかく、C#/C++/Java のような実用・効率を求める言語で単に「ラムダ表現ができる」「簡潔だ」くらいの理由で採用されるのは、無目的に言語仕様を拡張しているという理由で個人的には不満
さらにはラムダ表現を老害フィルタがわりに使う者もいたりするが、そういうのには賛同しがたい
その wikipedia の解説はちょっと本質からはずれている気がする
「明示的な識別子を含まないで再帰関数が記述できる」くらいか
ラムダ表現を採用している、というのなら不動点コンビネータくらいは記述できないといけないのではないか?
いいかえれば不動点コンビネータを表現できないラムダ表現は「何か大事な部分が欠けている」
ラムダ表現は理論的なモデル(計算可能性を論じるなど)として考案されたもので、実用とか効率とかからは遠く離れている
ラムダ表現を売りにする言語(lisp とか)ならともかく、C#/C++/Java のような実用・効率を求める言語で単に「ラムダ表現ができる」「簡潔だ」くらいの理由で採用されるのは、無目的に言語仕様を拡張しているという理由で個人的には不満
さらにはラムダ表現を老害フィルタがわりに使う者もいたりするが、そういうのには賛同しがたい
830デフォルトの名無しさん (アウアウカー Sa47-QFn6)
2018/04/17(火) 01:21:31.43ID:RhwG6Rqia javascriptだとアリって気がするよな。
なぜかは知らんが。まあlisp感あるからか。
なぜかは知らんが。まあlisp感あるからか。
831デフォルトの名無しさん (ワッチョイ ff12-/JlG)
2018/04/17(火) 08:33:39.92ID:dXM64r3I0 javascriptにはなぜかオブジェクト指向が無いからな
コンビネータはC++には早晩実装されそうな気がする
コンビネータはC++には早晩実装されそうな気がする
832デフォルトの名無しさん (ワッチョイ 738a-A4FG)
2018/04/17(火) 09:37:19.33ID:tZLDyJo/0 C++やJavaはクラスベースのオブジェクト指向言語
JavaScriptはプロトタイプベースのオブジェクト指向言語
JavaScriptはプロトタイプベースのオブジェクト指向言語
833デフォルトの名無しさん (ワッチョイ a39f-/JlG)
2018/04/17(火) 23:42:23.84ID:Yk52Q7IR0 >>829
今の仕様で不動点コンビネータが記述できるのかどうかは俺には分からないが、
焦点はその先で、「記述できたら何がうれしいのだ?」なのだと思うよ。
実用言語で重視されるのは当然「実用性」であって、「学術性」ではない。
逆に、実用性皆無なら、当該部分が削除された状態で採用されるべきだ。
例えばC#は意図的にインラインアセンブラを禁止している。
ヘルスバーグのインタビューがググッても出てこないのだが、心は、
「C#のコードならメンテできます」の為の必要知識量を抑えること、だった。
これは長期的に要員確保の難易度を下げ、結果的にメンテ性を上げる。
これも実用言語では重要だよ。
アメリカでPythonを使うのも、Python自体が良い言語だと思っている奴は皆無で、
「Pythonならみんな読めるし書けるから」だからね。
そのコードが10年以上使われることが分かっているのなら、
10年後に要員確保できない可能性がある言語を選択するのは間違いだし。
Cは、(時代的に無理ではあったが)何でもありの状態で、
文法は極めて簡単だが問題は中で何をやっているかで、読んでみなければ分からない。
「Cのコードならメンテできます」とか、簡単に言うのは無理だろ。
C#はイミフなコード構成(大体はCでも警告が出るもの)も禁止されており、
一応、エンジニアが「C#ならメンテできます」と言えることを目指している。
(上手く行っているとは言い難い部分もあるが)
酷い話だが、Javaは10年間全く進歩しないことによってこれを達成してしまっているし。
だから、話を戻すと、
実用言語においては実用性のある機能は取り入れるべきだが、
実用性がない機能は捨てられるべきなんだよ。
(大は小を兼ねる、多めに採用しとけ、ではない。同様に無駄に構文糖が多いのも問題)
今回ラムダが矮小化されて取り込まれているということなら、
取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。
勿論今後覆る可能性もあるけどね。
今の仕様で不動点コンビネータが記述できるのかどうかは俺には分からないが、
焦点はその先で、「記述できたら何がうれしいのだ?」なのだと思うよ。
実用言語で重視されるのは当然「実用性」であって、「学術性」ではない。
逆に、実用性皆無なら、当該部分が削除された状態で採用されるべきだ。
例えばC#は意図的にインラインアセンブラを禁止している。
ヘルスバーグのインタビューがググッても出てこないのだが、心は、
「C#のコードならメンテできます」の為の必要知識量を抑えること、だった。
これは長期的に要員確保の難易度を下げ、結果的にメンテ性を上げる。
これも実用言語では重要だよ。
アメリカでPythonを使うのも、Python自体が良い言語だと思っている奴は皆無で、
「Pythonならみんな読めるし書けるから」だからね。
そのコードが10年以上使われることが分かっているのなら、
10年後に要員確保できない可能性がある言語を選択するのは間違いだし。
Cは、(時代的に無理ではあったが)何でもありの状態で、
文法は極めて簡単だが問題は中で何をやっているかで、読んでみなければ分からない。
「Cのコードならメンテできます」とか、簡単に言うのは無理だろ。
C#はイミフなコード構成(大体はCでも警告が出るもの)も禁止されており、
一応、エンジニアが「C#ならメンテできます」と言えることを目指している。
(上手く行っているとは言い難い部分もあるが)
酷い話だが、Javaは10年間全く進歩しないことによってこれを達成してしまっているし。
だから、話を戻すと、
実用言語においては実用性のある機能は取り入れるべきだが、
実用性がない機能は捨てられるべきなんだよ。
(大は小を兼ねる、多めに採用しとけ、ではない。同様に無駄に構文糖が多いのも問題)
今回ラムダが矮小化されて取り込まれているということなら、
取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。
勿論今後覆る可能性もあるけどね。
834デフォルトの名無しさん (ワッチョイ 738a-Z7Iu)
2018/04/17(火) 23:55:44.13ID:zXGef27d0 そういうのは自宅の壁に
>>833
>取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。
受動的な態度であればそうなるが、あえて私の感覚を述べるとすれば、
ラムダ式を C++/C#/Java(特にC++)に取り込む価値があったのか?
という点、C++ のラムダ式は operator()() で実現できるし、operator()() のシンタックスシュガーと考えてよい
シンタックスシュガーを全否定するわけではない
「ラムダ式」という偉大な名前に反して、実際にできることは一般的な「ラムダ式」のカバーする領域よりも狭くなっているのを「不満」と感じているだけなのかもしれない
>取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。
受動的な態度であればそうなるが、あえて私の感覚を述べるとすれば、
ラムダ式を C++/C#/Java(特にC++)に取り込む価値があったのか?
という点、C++ のラムダ式は operator()() で実現できるし、operator()() のシンタックスシュガーと考えてよい
シンタックスシュガーを全否定するわけではない
「ラムダ式」という偉大な名前に反して、実際にできることは一般的な「ラムダ式」のカバーする領域よりも狭くなっているのを「不満」と感じているだけなのかもしれない
836デフォルトの名無しさん (ワッチョイ a39f-/JlG)
2018/04/18(水) 01:03:16.68ID:fAoQEHU80 >>835
> C++ のラムダ式は operator()() で実現できるし、operator()() のシンタックスシュガーと考えてよい
一応それが禿がラムダをC++に採用するのに反対している理由だったと聞いたが、
結果的には折れたんだろ。
昨今は「出来ること」よりも「ソースコードの見やすさ」が重視されているし、妥当だと思うが。
比較すると、
1. そもそも operator()()(ファンクタ)では関数に見えない。これが最大のガン。
2. C/C++は階層記述能力が無く、関数内関数が出来ない。このため、
局所的に関数ポインタを使いたいだけの場合でも上位階層に関数を記述するしかなく、
結果的にその関数は他からも見える(使える)状態になってしまう。
匿名関数であれば、そこでしか使っていない事を文法的に保証できる。
3. ファンクタだとインスタンス変数は必ずコピーすることになる。
ラムダだとおそらく直接掴める場合もあり、この場合はケチれる。
(ただしこれは実装による)
だから関数内関数(クロージャ付き、最低限その階層の変数は見えるもの=GCC拡張の仕様でいい)があれば、
1,2,3とも達成できるし、要らなかったかな、とも思う。
というか、C/C++とも、関数内関数(階層)は無しで押し切るつもりかよー、とは思う。
ラムダよりこっちの方が必要な気がするのだが。
> C++ のラムダ式は operator()() で実現できるし、operator()() のシンタックスシュガーと考えてよい
一応それが禿がラムダをC++に採用するのに反対している理由だったと聞いたが、
結果的には折れたんだろ。
昨今は「出来ること」よりも「ソースコードの見やすさ」が重視されているし、妥当だと思うが。
比較すると、
1. そもそも operator()()(ファンクタ)では関数に見えない。これが最大のガン。
2. C/C++は階層記述能力が無く、関数内関数が出来ない。このため、
局所的に関数ポインタを使いたいだけの場合でも上位階層に関数を記述するしかなく、
結果的にその関数は他からも見える(使える)状態になってしまう。
匿名関数であれば、そこでしか使っていない事を文法的に保証できる。
3. ファンクタだとインスタンス変数は必ずコピーすることになる。
ラムダだとおそらく直接掴める場合もあり、この場合はケチれる。
(ただしこれは実装による)
だから関数内関数(クロージャ付き、最低限その階層の変数は見えるもの=GCC拡張の仕様でいい)があれば、
1,2,3とも達成できるし、要らなかったかな、とも思う。
というか、C/C++とも、関数内関数(階層)は無しで押し切るつもりかよー、とは思う。
ラムダよりこっちの方が必要な気がするのだが。
837デフォルトの名無しさん (スップ Sd1f-CG16)
2018/04/18(水) 02:30:28.15ID:vVNlUpo0d Cとシェルスクリプトだけで生きていきたいんですが食べていけますか?
またそういった分野らOSSコミッター以外でありますでしょうか?
またそういった分野らOSSコミッター以外でありますでしょうか?
838デフォルトの名無しさん (ワッチョイ 738a-Z7Iu)
2018/04/18(水) 02:40:14.81ID:whM0Cl8U0 あるとするなら組込系かな
回路図とアセンブラは出来るの?
回路図とアセンブラは出来るの?
839デフォルトの名無しさん (スップ Sd1f-CG16)
2018/04/18(水) 03:38:30.78ID:5PSc4Ve9d >>838
ありがとうございます
ありがとうございます
840デフォルトの名無しさん
2018/04/18(水) 06:50:02.81 今どき組み込み系もPythonできなきゃやっていけない時代よ
841デフォルトの名無しさん (ワッチョイ a350-96DA)
2018/04/18(水) 06:58:40.17ID:JUjvxXNW0 組み込みは圧倒的にC言語が多い
842デフォルトの名無しさん
2018/04/18(水) 07:26:37.24 >>841
ツール類は一昔前ならPerl/Ruby/TTL(TeraTerm)/VBA、今はPythonが必須だよ
ツール類は一昔前ならPerl/Ruby/TTL(TeraTerm)/VBA、今はPythonが必須だよ
843デフォルトの名無しさん (ワッチョイ a350-96DA)
2018/04/18(水) 07:55:12.06ID:JUjvxXNW0 ツール類ってなんだよ
組み込みの話をしてるの
機器内部のファームウェア
組み込みの話をしてるの
機器内部のファームウェア
844デフォルトの名無しさん
2018/04/18(水) 08:03:28.70 >>843
組み込み系開発者がCソースだけいじってればいいと思ってんのか
組み込み系開発者がCソースだけいじってればいいと思ってんのか
845デフォルトの名無しさん (ワッチョイ a350-96DA)
2018/04/18(水) 08:06:09.63ID:JUjvxXNW0 大部分の組み込みだとYES
他の言語など使わない
他の言語など使わない
846デフォルトの名無しさん (ワッチョイ a350-96DA)
2018/04/18(水) 08:07:13.14ID:JUjvxXNW0 C言語以外が必要なのは大規模な物だけ
847デフォルトの名無しさん (ワッチョイ 7ff9-Xhbj)
2018/04/18(水) 08:15:48.27ID:Acg84ZKa0 >>837
そういうことはプログラム板ではなくプログラマ板で聞いてこい
そういうことはプログラム板ではなくプログラマ板で聞いてこい
848デフォルトの名無しさん (アウアウウー Sae7-QFn6)
2018/04/18(水) 08:30:18.84ID:8g/N/Bw3a >>844
いい。
いい。
849デフォルトの名無しさん (ワッチョイ 738a-Z7Iu)
2018/04/18(水) 08:59:26.18ID:whM0Cl8U0 最悪、シーケンサ(PC)でラダー図とアセンブラ触ってりゃ
行けるでしょ。
MELSEC-iQ-RとかはC言語で書く(OSはVxWorks)
ま所詮は他人の人生である
行けるでしょ。
MELSEC-iQ-RとかはC言語で書く(OSはVxWorks)
ま所詮は他人の人生である
850デフォルトの名無しさん (ワッチョイ 135b-ycE0)
2018/04/18(水) 09:49:03.96ID:bX/oR0u10 Cでさえオーバースペックでアセンブラという場合まである
851デフォルトの名無しさん (スップ Sd1f-96DA)
2018/04/18(水) 09:57:01.68ID:8LhMtFC1d アセンブラでさえオーバースペックでバイナリエディタという場合まである
852デフォルトの名無しさん (ワッチョイ 738a-D6/M)
2018/04/18(水) 10:32:00.37ID:MgMoBevw0 >>851
参考までにアセンブラがオーバースペックなマイコン(SoC)って何処の製品か教えて
参考までにアセンブラがオーバースペックなマイコン(SoC)って何処の製品か教えて
853デフォルトの名無しさん (ワントンキン MM9f-Z7Iu)
2018/04/18(水) 10:40:41.42ID:0P72JrSeM あるとすればIMSAIとかだろうけど、流石にネタだろ
854デフォルトの名無しさん (アウアウカー Sa47-p2KG)
2018/04/18(水) 11:16:51.20ID:gg2GabAwa プログラムを動かすボードが貧弱でも開発は豪華なPCでやるんだから最低でもアセンブラ使えるようにはするだろう。
作ったばかりのCPUで他のCPUとの互換性が全くなくアセンブラもまだない、なんていう特殊な状況でない限りは。
作ったばかりのCPUで他のCPUとの互換性が全くなくアセンブラもまだない、なんていう特殊な状況でない限りは。
855デフォルトの名無しさん (アウアウウー Sae7-QFn6)
2018/04/18(水) 11:45:29.90ID:8g/N/Bw3a マウンティング頑張れ
856デフォルトの名無しさん (スップ Sd1f-96DA)
2018/04/18(水) 12:36:20.65ID:8LhMtFC1d ごめんなさい
ネタです
ネタです
857デフォルトの名無しさん (アウアウカー Sa47-p2KG)
2018/04/18(水) 12:57:38.66ID:gg2GabAwa mount /dev/sda
858デフォルトの名無しさん (ワッチョイ 43bb-LJHW)
2018/04/18(水) 23:26:56.70ID:1I0zrtwW0 組込み屋だけど会社によって状況違うんだなとしみじみ
859デフォルトの名無しさん (ワッチョイ e39f-ycE0)
2018/04/18(水) 23:58:14.05ID:BI6oaZDa0 この頃は組み込みって言っても Linux が動いちゃうような小さいボードあるしな。
SDメモリに平気で何Gもデータ入れちゃったりもできるし。なんとういか、時代は変わったよな。
昔は2KBと4KBのROMに詰め込むためにビット単位で削っていたもんな。
SDメモリに平気で何Gもデータ入れちゃったりもできるし。なんとういか、時代は変わったよな。
昔は2KBと4KBのROMに詰め込むためにビット単位で削っていたもんな。
860デフォルトの名無しさん (ラクッペ MMcb-x+X/)
2018/04/19(木) 00:35:24.22ID:q2wFspbLM 組み込みって昔から小っちゃいのから馬鹿デッカいものまであるから一括りにするのが間違い
861850 (ワッチョイ b7bd-9jjH)
2018/04/19(木) 05:33:01.08ID:IwtdBTTY0 なんかネタレスで返されてるな
とあるLEDアレイの案件では並列に重きを置き
CPUあたりの処理能力は思いっきり低い
なんてのがあったんだが
とあるLEDアレイの案件では並列に重きを置き
CPUあたりの処理能力は思いっきり低い
なんてのがあったんだが
862デフォルトの名無しさん (アウアウカー Sa43-9Dln)
2018/04/19(木) 12:39:01.79ID:oHD1faOFa あまりに面倒ならハードウェアで回路追加して解決
863デフォルトの名無しさん (スププ Sdba-QjU0)
2018/04/19(木) 22:41:42.50ID:Uac+F3+Td あんまりそれすると、またハード屋に小言言われるぞ。
864デフォルトの名無しさん (ワッチョイ 76e7-l7dU)
2018/04/19(木) 23:07:31.74ID:p3OUOmjs0 int a[] = {0,1,2,3};
char b =0;
scanf("%d",&b);
printf("%d",a[b]);
知恵袋でこんな質問があって俺も不思議に思って持ってきたんだけど
色んな数字入れても0になるとか書かれてたんだけどこれどうなってるの?
char b =0;
scanf("%d",&b);
printf("%d",a[b]);
知恵袋でこんな質問があって俺も不思議に思って持ってきたんだけど
色んな数字入れても0になるとか書かれてたんだけどこれどうなってるの?
865デフォルトの名無しさん (ワッチョイ 4e81-9jjH)
2018/04/19(木) 23:17:20.36ID:/9NYPZwG0 >>864
自分で試してみた?
自分で試してみた?
866デフォルトの名無しさん (ワッチョイ 76e7-l7dU)
2018/04/19(木) 23:21:55.11ID:p3OUOmjs0 >>865
100入れてみたら3が返ってきたw
100入れてみたら3が返ってきたw
868デフォルトの名無しさん (ワッチョイ 83b3-sFFS)
2018/04/19(木) 23:23:39.27ID:XF7JHHHf0 エンディアンによるような気もするがー
%d は int の大きさを持った器のポインタを要求してるのに
char の大きさの器を渡してるから どうなろうがしったこっちゃない鼻から悪魔系の動作
%d は int の大きさを持った器のポインタを要求してるのに
char の大きさの器を渡してるから どうなろうがしったこっちゃない鼻から悪魔系の動作
869デフォルトの名無しさん (ワッチョイ 76e7-l7dU)
2018/04/19(木) 23:29:53.26ID:p3OUOmjs0 これがエラーにならず動いてしまうという悪魔のCの動作か
870デフォルトの名無しさん (ワッチョイ 4e81-9jjH)
2018/04/19(木) 23:30:32.30ID:/9NYPZwG0 char b[4] = {0};
scanf("%d",&b[0]);
printf("%d %d %d %d\n",b[0],b[1],b[2],b[3]);
これをVCとGCCで試してみた
結果は配列先頭要素に代入され、残りは0のままだった
scanf("%d",&b[0]);
printf("%d %d %d %d\n",b[0],b[1],b[2],b[3]);
これをVCとGCCで試してみた
結果は配列先頭要素に代入され、残りは0のままだった
871デフォルトの名無しさん (ワッチョイ baf9-udCU)
2018/04/19(木) 23:31:48.87ID:x2EYL8xQ0 >>867
bの型がcharなのが肝なんだからそこは間違えるなよ
bの型がcharなのが肝なんだからそこは間違えるなよ
872デフォルトの名無しさん (ワッチョイ 83b3-sFFS)
2018/04/19(木) 23:33:18.23ID:XF7JHHHf0 >>870
入力で負の値を渡すと…
入力で負の値を渡すと…
873デフォルトの名無しさん (アウアウウー Sa47-jD/J)
2018/04/19(木) 23:33:42.76ID:lwH23MPfa intだからな
874デフォルトの名無しさん (ワッチョイ 4e81-9jjH)
2018/04/19(木) 23:36:41.07ID:/9NYPZwG0 なるほど、入力値が小さいときは、
後ろの配列が変わってないかのように見えるだけって事か
後ろの配列が変わってないかのように見えるだけって事か
>>868
char 配列の大きさを表す変数が int であっても、あるいはそうでなくても、それは関係ないのでは?
char 配列の大きさを表す変数が int であっても、あるいはそうでなくても、それは関係ないのでは?
876デフォルトの名無しさん (ワッチョイ 83b3-sFFS)
2018/04/19(木) 23:38:53.72ID:XF7JHHHf0 >>871
あ!
あ!
878デフォルトの名無しさん (ワッチョイ 83b3-sFFS)
2018/04/19(木) 23:40:18.78ID:XF7JHHHf0 >>875
printf ではなく scanf のフォーマットでの %d 指定に char 変数のポインタを渡してる話よ?
printf ではなく scanf のフォーマットでの %d 指定に char 変数のポインタを渡してる話よ?
880デフォルトの名無しさん (アウアウウー Sa47-jD/J)
2018/04/20(金) 00:50:00.05ID:G/kLZxdya 警告って出ないもん?
881デフォルトの名無しさん (ワッチョイ 578a-/Wij)
2018/04/20(金) 01:57:12.33ID:wjKqEKEv0 関数の引数はスタックサイズに丸められるよ
882デフォルトの名無しさん (アウアウウー Sa47-jD/J)
2018/04/20(金) 02:04:42.67ID:G/kLZxdya ポインタだしなあ
883デフォルトの名無しさん (ワッチョイ 2393-MaWf)
2018/04/20(金) 06:13:59.91ID:EDYH6GYd0884デフォルトの名無しさん (ワッチョイ 2350-Incm)
2018/04/20(金) 06:51:33.68ID:9tWrHk9l0885デフォルトの名無しさん (ワッチョイ b727-9jjH)
2018/04/20(金) 07:58:37.73ID:eEDtLY6e0 アホな点をいくつ見つけられるかで
各自のアホ度を測定できるな
各自のアホ度を測定できるな
886デフォルトの名無しさん (スップ Sd5a-rWRa)
2018/04/20(金) 09:31:45.52ID:OLFb+zqBd それがデバッグと言われる行為だろ?
887デフォルトの名無しさん (ワンミングク MM8a-/Wij)
2018/04/20(金) 10:21:13.71ID:xd9k5+f1M 脳がwormhole だらけなんでしょ
888デフォルトの名無しさん (ワッチョイ 76e7-l7dU)
2018/04/20(金) 14:21:22.42ID:33OB1hDw0 char *line;
scanf("%s", &line);//dogが入る
if(line=="dog")
{
printf("dogですよ");
}
これってなんでdogと合わないん?
scanf("%s", &line);//dogが入る
if(line=="dog")
{
printf("dogですよ");
}
これってなんでdogと合わないん?
889デフォルトの名無しさん (ワッチョイ e38a-0RFE)
2018/04/20(金) 14:26:31.37ID:UQRLXIIQ0 >>888
scanf で受けとる変数をchar型の配列にしましょう
scanf で受けとる変数をchar型の配列にしましょう
890デフォルトの名無しさん (スップ Sd5a-rWRa)
2018/04/20(金) 14:30:58.92ID:OLFb+zqBd >>888
line=="dog" という式は strcmp関数にしましょう
line=="dog" という式は strcmp関数にしましょう
891デフォルトの名無しさん (ワッチョイ 4eea-sFFS)
2018/04/20(金) 14:31:04.87ID:JZAZQDTS0 文字列の比較は == ではなく、strcmp 等の比較関数をつかいましょう
892デフォルトの名無しさん (ササクッテロロ Sp3b-qxIM)
2018/04/20(金) 15:15:01.27ID:uy6ZTS8Ap アドレスの一致を比較してるからじゃね?
893デフォルトの名無しさん (スップ Sd5a-Incm)
2018/04/20(金) 15:17:13.71ID:RdXrGqPUd C言語はプロ向きの言語
「とりあえず動かしてみる」
とかいう用途には向かない
入門書とかできちんと勉強しよう
「とりあえず動かしてみる」
とかいう用途には向かない
入門書とかできちんと勉強しよう
894デフォルトの名無しさん (ワッチョイ 4eea-sFFS)
2018/04/20(金) 15:20:02.90ID:JZAZQDTS0 >char *line;
>scanf("%s", &line);
この2行に色々な罠や誤りが仕込まれてるな。
Cで躓くであろう、ポインタと配列、文字と文字列周辺
(セキュリティや入力のオーバーランは考慮せず簡便なので書くと)
char line[256];
scanf("%s", line);
>scanf("%s", &line);
この2行に色々な罠や誤りが仕込まれてるな。
Cで躓くであろう、ポインタと配列、文字と文字列周辺
(セキュリティや入力のオーバーランは考慮せず簡便なので書くと)
char line[256];
scanf("%s", line);
895デフォルトの名無しさん (アウアウカー Sa43-9Dln)
2018/04/20(金) 17:03:59.70ID:OzeM0EoQa896片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdba-gnn3)
2018/04/20(金) 17:21:20.04ID:PF4NyNv9d >>894
char line[64];
size_t len;
fgets(line, sizeof(line), stdin);
len = strlen(line);
if (len && line[len - 1] == '\n') line[len - 1] = 0;
if(strcmp(line, "dog") == 0)
{
printf("dogですよ\n");
}
char line[64];
size_t len;
fgets(line, sizeof(line), stdin);
len = strlen(line);
if (len && line[len - 1] == '\n') line[len - 1] = 0;
if(strcmp(line, "dog") == 0)
{
printf("dogですよ\n");
}
897片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdba-gnn3)
2018/04/20(金) 17:28:09.55ID:PF4NyNv9d char line[64];
fgets(line, sizeof(line), stdin);
strtok(line, "\n");
if(strcmp(line, "dog") == 0)
{
printf("dogですよ\n");
}
fgets(line, sizeof(line), stdin);
strtok(line, "\n");
if(strcmp(line, "dog") == 0)
{
printf("dogですよ\n");
}
898デフォルトの名無しさん (ワッチョイ b727-9jjH)
2018/04/20(金) 18:00:02.24ID:eEDtLY6e0 char line[256];
scanf("%255s", line);
scanfを使えないアホが
scanfをdisるのを見る度に
嘲笑するのも勿体ない気分になる
scanf("%255s", line);
scanfを使えないアホが
scanfをdisるのを見る度に
嘲笑するのも勿体ない気分になる
899デフォルトの名無しさん (ワッチョイ 76e7-l7dU)
2018/04/20(金) 18:02:13.70ID:rQE2Qud50 これでもし入力条件が不明の長さで受け取らなきゃ行けなかったらどうすればいい?
901デフォルトの名無しさん (ワッチョイ 578a-/Wij)
2018/04/20(金) 18:10:03.88ID:wjKqEKEv0 *ぐらい使えよ
902片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdba-gnn3)
2018/04/20(金) 18:10:57.05ID:PF4NyNv9d std::getline
一文字ずつ読み込む
一文字ずつ読み込む
903デフォルトの名無しさん (アウアウカー Sa43-9Dln)
2018/04/20(金) 18:40:42.36ID:dyY1ZlsFa gccならgetline()
904片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdba-gnn3)
2018/04/20(金) 18:44:42.17ID:PF4NyNv9d 入力バッファにちょっとゴミが混じるだけでscanfは使えなくなる。
そんな役立たずは、業務では使うべきではない。使うなら、fgetsとsscanfの方がいい。
我が国のコンピューター教育は残念ながら、業務では役に立たない言語を教えている。
そんな役立たずは、業務では使うべきではない。使うなら、fgetsとsscanfの方がいい。
我が国のコンピューター教育は残念ながら、業務では役に立たない言語を教えている。
905デフォルトの名無しさん (ワッチョイ 578a-Elb0)
2018/04/20(金) 19:13:13.94ID:2JMfU3z40 むしろ余程プアな環境でない限り、業務でC言語は使うべきではない
>>905
かわりに何を使えばいいですか?
かわりに何を使えばいいですか?
907デフォルトの名無しさん
2018/04/20(金) 19:55:43.39 >>906
Python
Python
908デフォルトの名無しさん (ワッチョイ 2350-Incm)
2018/04/20(金) 20:49:36.44ID:9tWrHk9l0 業務でこそC言語
909デフォルトの名無しさん (ワッチョイ 5ff7-Stg3)
2018/04/20(金) 20:55:22.00ID:18ECoYTh0 COBOLかVB
910デフォルトの名無しさん (アウアウウー Sa47-9jjH)
2018/04/20(金) 21:04:02.42ID:qDS4Ifrca >>905
心配しなくても使われる所は限られてるよ。
OSそのものとかデバイスドライバとかな。
それも減りつつあるんじゃないかな。
まあしかし過去の資産がありすぎて捨てられないって感じか。
うまいこと互換性を保ちつつ次の段階へ行ければいいんだろうけどね。
心配しなくても使われる所は限られてるよ。
OSそのものとかデバイスドライバとかな。
それも減りつつあるんじゃないかな。
まあしかし過去の資産がありすぎて捨てられないって感じか。
うまいこと互換性を保ちつつ次の段階へ行ければいいんだろうけどね。
911デフォルトの名無しさん (ワッチョイ 2350-Incm)
2018/04/20(金) 21:08:14.53ID:9tWrHk9l0 MCUはほとんどがC言語
たまにC++
たまにアセンブラ
たまにC++
たまにアセンブラ
912デフォルトの名無しさん (ドコグロ MM92-cuLp)
2018/04/20(金) 22:17:00.80ID:DDZisBasM >>899
その受け取ったデータをどう使うかによる
その受け取ったデータをどう使うかによる
913デフォルトの名無しさん (ワッチョイ b39f-9jjH)
2018/04/21(土) 00:13:25.41ID:Oxipuy330 >>901
scanf() の * は・・・
scanf() の * は・・・
914デフォルトの名無しさん
2018/04/21(土) 03:47:37.05ID:Ynju1Yzg hallo warld
915デフォルトの名無しさん (ワッチョイ 8a7f-+rmP)
2018/04/21(土) 03:55:01.78ID:nJ9/ilUK0 >>914
ばかに見えるから止めた方がいいと思うよ
ばかに見えるから止めた方がいいと思うよ
916デフォルトの名無しさん (ワッチョイ b727-9jjH)
2018/04/21(土) 06:07:34.81ID:pETeS31u0917デフォルトの名無しさん (ワッチョイ b727-9jjH)
2018/04/21(土) 06:24:19.45ID:pETeS31u0 >>904
898の例でゴミが問題になるのか?
898の例でゴミが問題になるのか?
918デフォルトの名無しさん (ワッチョイ 5fab-9jjH)
2018/04/21(土) 15:05:42.05ID:WYiI1Hbl0 入力された文字列(例えば10文字程度)を、
数字だけ*に変えるプログラムを作りたいと思ってるんですが、
どうもうまく行きません
どなたか簡単なコード書いてくれませんか
数字だけ*に変えるプログラムを作りたいと思ってるんですが、
どうもうまく行きません
どなたか簡単なコード書いてくれませんか
919デフォルトの名無しさん
2018/04/21(土) 15:31:16.54レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- 高市が早くあの発言を撤回しないと、中国からもっと大きな制裁が飛んでくるぞ [805596214]
- 【動画】ファッションモデルまんこ、裸でランウェイを歩く。これがファッションだと言われて [749674962]
- 【画像】髙市さん「無職のシンママ支援を手厚くするため、世帯年収900万円以上の控除をカットします🙂」 [881878332]
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
