板検索:
C言語なら俺に聞け 138 (561)
まとめビュー
このスレはC言語なら俺に聞け スレの最新スレです。
表示中 C言語なら俺に聞け 138 (561)
過去ログ C言語なら俺に聞け 137 (1000) 2016/10/04 20:23〜
1
デフォルトの名無しさん(ワッチョイ 8b7b-7i2P)[]   投稿日:2016/12/10 21:13:56  ID:Y8xCOPeF0.n
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言語なら俺に聞け 137
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured


2
デフォルトの名無しさん (ワッチョイ 537b-ifuQ)[sage]   投稿日:2016/12/11 00:16:28  ID:1/Psj4wD0.n
  ∧_∧_∧:::::::
 (   ,,゚)゚* )::::::::  HoChu
〜(___)_)〜::::::

3
デフォルトの名無しさん (ワッチョイ 8b4e-Ts63)[sage]   投稿日:2016/12/11 00:27:22  ID:Fe+GkT0n0.n
ほっしゅっしゅ

4
デフォルトの名無しさん (ワッチョイ a74f-drn7)[sage]   投稿日:2016/12/12 16:37:34  ID:WPCsPjPg0.n
前スレ終了からの即死回避

5
デフォルトの名無しさん (アウアウイー Sa37-Cn1F)[sage]   投稿日:2016/12/12 20:38:07  ID:D4fd559ba.n(2)
C初心者です
入力した数値を画面に表示させたいのですが、少し質問させてください

‘力の際に、例えば「参加人数:4人」のように「参加人数:○人」だけ先に
表示させ、数値を入力すると○が埋まるようにしたいのですが可能でしょうか?

入力する数字を一桁に限定し、例えば「23」と打ったらまず2が表示され、
3を打った時点で3に上書きされるようにしたいのですが可能でしょうか?

以上です
暇なときにでもご回答いただければ幸いです
コメント2件

6
デフォルトの名無しさん (ワッチョイ a7e3-VjgG)[]   投稿日:2016/12/12 20:57:09  ID://vq14Rq0.n
>5
両方とも不可
cursesのようなライブラリ使えば可
コメント1件

7
デフォルトの名無しさん (アウアウイー Sa37-Cn1F)[sage]   投稿日:2016/12/12 21:06:02  ID:D4fd559ba.n(2)
>6
ありがとうございます
助かりました
いつか挑戦してみようと思います

8
デフォルトの名無しさん (ワッチョイ 6f5b-3ple)[]   投稿日:2016/12/12 22:19:08  ID:tKvygcuz0.n
いったん背景色で塗りりつぶして、
TextOutで上書きすれば良いだけじゃないの?

9
デフォルトの名無しさん (ワッチョイ ef17-WrC4)[sage]   投稿日:2016/12/12 22:43:54  ID:XxcsTlOG0.n
まだCUIが一般的だったほど昔にそういうの作ったことあるけど
カーソル制御や上書き削除やらで面倒だったな

10
デフォルトの名無しさん (ワントンキン MMef-/x+d)[]   投稿日:2016/12/12 23:29:21  ID:hz71Kf5GM.n
>5
一行だけでいいなら、printf ¥r で出来るよ
まぁでもおすすめはcursesかなわりと簡単で便利

11
デフォルトの名無しさん (ワッチョイ 277b-j1Yw)[sage]   投稿日:2016/12/13 05:32:03  ID:T6NEUE2P0.n
cursesだってCで書いてあるわけだから、複数行だろうがなんだろうが自分でできないわけではないね
curses使えば楽なのは疑う余地もないけど

12
デフォルトの名無しさん (トンモー MM07-38k1)[]   投稿日:2016/12/13 08:46:00  ID:CeDguAajM.n
ああ、そういえば、そういうのあったね。
ぐらいしか覚えてない。

仕事し過ぎて倒れて入院したとき
記憶が一部なくなったみたいなんだ。

仕事し過ぎに注意してね!

13
デフォルトの名無しさん (ガラプー KK77-sx4I)[]   投稿日:2016/12/13 19:23:39  ID:vty9E/+AK.n(3)
質問なんですけど、
文字列のポインタをリターンしたいんですが、どうすればいいのか教えて下さい

char* hage="abc";
return hage;

14
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK77-sH8c)[sage]   投稿日:2016/12/13 19:49:47  ID:AlD2ABgfK.n(6)
constを付ける

const char *hage="abc";
return hage;
コメント1件


15
デフォルトの名無しさん (アウアウイー Sa37-Cn1F)[sage]   投稿日:2016/12/13 19:57:22  ID:urfJjx8Pa.n(2)
やりたいことがよくわからんが、こういうこと?
#include <stdio.h>

char* sub(void){

char *hoge = "abc" ;
return hoge ;
}

int main(void){

char *piyo ;
piyo = sub() ;
puts(piyo) ;

return 0 ;
}

16
デフォルトの名無しさん (ガラプー KK77-sx4I)[]   投稿日:2016/12/13 20:04:03  ID:vty9E/+AK.n(3)
そうです

constつけたらエラーになりました

17
デフォルトの名無しさん (ブーイモ MM07-JZIj)[sage]   投稿日:2016/12/13 20:06:58  ID:Jg0pzD7jM.n
const char* func()ってすれば?

18
デフォルトの名無しさん (アウアウイー Sa37-Cn1F)[sage]   投稿日:2016/12/13 20:12:55  ID:urfJjx8Pa.n(2)
上手くいかないコードがあるならそれを見せてくれないと何とも言えん

19
デフォルトの名無しさん (ガラプー KK47-sx4I)[]   投稿日:2016/12/13 20:14:57  ID:vty9E/+AK.n(3)
諦めました
おさわがせしました

20
デフォルトの名無しさん (ワッチョイ 4bdc-+dBx)[sage]   投稿日:2016/12/13 21:27:28  ID:yoJDLw390.n
諦めちゃったなら意味ないんだろうけど、こんな感じじゃろ。
const char *str_ptr(void) {
 const char *ret = "some string";
 return ret;
}

固定の文字列なら変数に代入する必要すらなくて
const char *str_ptr(void) {
 return "constant string";
}

固定文字列を返す関数に実用性があるか不明だけど、
「関数内で生成した文字列だけど外部で書き換えないでね。
変更するなら呼出し側でコピーしてから好きに変更してね」
という意図は明らかにできるかな。
コメント1件

21
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK77-sH8c)[sage]   投稿日:2016/12/13 22:24:10  ID:AlD2ABgfK.n(6)
自分でやるのをあきらめる人が居るから、技術料の要求が許される。
そうした技術は誰もができる訳ではない。

22
デフォルトの名無しさん (ワッチョイ 0b7b-ymeu)[]   投稿日:2016/12/13 22:59:11  ID:tzzF7wIm0.n
>14,20
死ね、ゴミクズ

static const char *ret = "some string";
コメント1件

23
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK07-sH8c)[sage]   投稿日:2016/12/13 23:05:12  ID:AlD2ABgfK.n(6)
>22
うるせえ雑魚。これはポインタだから静的に確保しても変わらない。
無駄にconst付けすぎ。

24
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK07-sH8c)[sage]   投稿日:2016/12/13 23:07:31  ID:AlD2ABgfK.n(6)
訂正。「無駄にconst付けすぎ。」をケス。

25
デフォルトの名無しさん (ワッチョイ 533c-drn7)[sage]   投稿日:2016/12/13 23:12:36  ID:4GRPhoBF0.n(2)
リテラル文字列そのものはスコープから抜けても静的に生き続けてるから
ポインタ戻したあとに利用してもセフセフ (内容の書き換えは駄目だけど)

26
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK77-sH8c)[sage]   投稿日:2016/12/13 23:17:48  ID:AlD2ABgfK.n(6)
const char *ret = "some string";
このコードは「some string」という文字列をヌル終端で読み込みのみのメモリーに格納し、そのメモリーの先頭アドレスをretにセットする。
古い規格ではconstは必要なかったが、読み込み専用で書き込みできない(read-only)なので、新しい規格ではconstが必要。

27
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK77-sH8c)[sage]   投稿日:2016/12/13 23:22:12  ID:AlD2ABgfK.n(6)
配列にした場合、const char ret[] = "some string";
となって文字列はスタックに確保される。この場合constを付けなければ、書き込み可能になる。
スタックメモリーを戻り値として返すのはまずいので、このような配列を返す場合はstaticを付けなければならない。
コメント1件

28
デフォルトの名無しさん (ワッチョイ b3e3-VjgG)[]   投稿日:2016/12/13 23:22:36  ID:Khw0PcSJ0.n
static const char const *ret = "some string";

29
デフォルトの名無しさん (ワッチョイ 533c-drn7)[sage]   投稿日:2016/12/13 23:44:58  ID:4GRPhoBF0.n(2)
>20 の例で
関数抜けた時にリテラル文字列 "some string" や "constant string" は
「スコープの外に出た時無効になるから、そんなんのポインタ返しても無意味だろ」 と勘違いする人は多いね
コメント1件

30
デフォルトの名無しさん (ワッチョイ b741-l58V)[sage]   投稿日:2016/12/14 07:55:05  ID:Mw3ROjnJ0.n
>29
そうそう。>27が色々書いてるけど、スタックに積まれるのはポインタであって、文字列はコンパイル時にread onlyの領域に確保されてるよね。
コメント1件

31
デフォルトの名無しさん (ブーイモ MM47-5xeh)[sage]   投稿日:2016/12/14 08:26:04  ID:vp5qXEYzM.n(2)
実装によらず、規格上その文字列がいつまでも生きてる保証あるの?
コメント2件

32
デフォルトの名無しさん (ワッチョイ 4324-iA20)[]   投稿日:2016/12/14 09:02:00  ID:lLfa6c4n0.n
>31
c++11規格なら間違いなくある。
つい最近確認した。
多分03でも書いてあるんじゃないかな。

確か、static strage classと同等、みたいな書き方だったような。
コメント1件

33
デフォルトの名無しさん (ドコグロ MMc7-Wysm)[sage]   投稿日:2016/12/14 09:15:55  ID:aDnd8CGXM.n
>31
JISX3010によれば、文字列リテラルは静的記憶域期間を持ち、プログラムが終了するまで生存する
コメント1件

34
デフォルトの名無しさん (ブーイモ MM47-5xeh)[sage]   投稿日:2016/12/14 10:39:10  ID:vp5qXEYzM.n(2)
>32
>33
サンキュ

35
デフォルトの名無しさん (ワッチョイ 7b36-dpej)[sage]   投稿日:2016/12/14 14:05:12  ID:Q3fXtkGO0.n
>30
>文字列はコンパイル時にread onlyの領域に確保されてるよね。
そうとは限らない

36
デフォルトの名無しさん (ワントンキン MMef-g0tO)[sage]   投稿日:2016/12/14 14:59:39  ID:q11TWfYqM.n(3)
K&R的には書き換え可能を謳っていたし

37
デフォルトの名無しさん (アウアウカー Sa67-xb/r)[sage]   投稿日:2016/12/14 19:08:19  ID:rxF6bqb2a.n(2)
JISX3010だと書き換えは未定義動作だけどな
その癖、rodataに置かれる保証がない

38
デフォルトの名無しさん (ワッチョイ d342-WrC4)[sage]   投稿日:2016/12/14 19:10:44  ID:h4mrordC0.n
配列に格納された文字列でなく、埋め込まれた文字列を書き換えるって気持ち悪くないですか?
コメント1件

39
デフォルトの名無しさん (アウアウカー Sa67-xb/r)[sage]   投稿日:2016/12/14 19:18:33  ID:rxF6bqb2a.n(2)
文字列リテラルは配列だぞ

40
デフォルトの名無しさん (ワントンキン MMef-g0tO)[sage]   投稿日:2016/12/14 19:30:20  ID:q11TWfYqM.n(3)
>38
文句はカーニハンに言っておくれ

41
デフォルトの名無しさん (トンモー MM07-38k1)[]   投稿日:2016/12/14 20:30:13  ID:Z+mku6fRM.n
k&rは間違いもあるでしょ?

42
デフォルトの名無しさん (ワントンキン MMef-g0tO)[sage]   投稿日:2016/12/14 20:44:27  ID:q11TWfYqM.n(3)
昔はあれだけが規約だったし。Lattice C / MS-C ver 2.x の頃
ちなみに SONY News は a =- b; 構文をサポートしていた
コメント1件

43
デフォルトの名無しさん (ワッチョイ 95b3-BQpQ)[sage]   投稿日:2016/12/15 11:21:06  ID:vd5CEk1t0.n
コンソールからコマンド列を取得する方法で教えて下さい。

CMD 0,1,2,3, ...... ,63

↑こんな感じで、カンマ区切り64個の文字列をsscanf()で取り込もうとしましたが、
「_sscanf': too many parameters」というエラーがでて怒られてしまいました。
文字列が16個まではsscanf()でエラーがでませんでした。

sscanf以外で実現する方法はないでしょうか?
コンパイラはKeil社製のC51です。
コメント2件

44
デフォルトの名無しさん (ドコグロ MM1c-qYir)[sage]   投稿日:2016/12/15 11:56:22  ID:QR6DFXxyM.n
>43
コマンドライン引数 C言語でググれ

45
デフォルトの名無しさん (JP 0H21-sBe1)[sage]   投稿日:2016/12/15 13:10:44  ID:KqXo4C+PH.n(2)
コマンドライン引数は取得できてて、文字列の分解方法を知りたいだけじゃないの?
質問が悪いけど。

46
デフォルトの名無しさん (ワントンキン MM40-Qnvt)[sage]   投稿日:2016/12/15 13:15:54  ID:4tPXC7shM.n(2)
strtok でぐぐれ

47
デフォルトの名無しさん (JP 0H21-sBe1)[sage]   投稿日:2016/12/15 13:20:01  ID:KqXo4C+PH.n(2)
で、そうだとして、独自の組み込み用コンパイラに
どこまでライブラリ揃ってるかわからんが
strtok使うかstrchrとstrncpyを繰り返していくかくらいかな

48
デフォルトの名無しさん (ワッチョイ 5953-8u2n)[sage]   投稿日:2016/12/15 14:07:18  ID:lA9gUxPc0.n
>43
16個まで読み取れるのならsscanf()1回につき15以下に分けて何回か繰り返し使えば

49
デフォルトの名無しさん (ワッチョイ bf42-8I6M)[sage]   投稿日:2016/12/15 14:19:49  ID:h9p732cR0.n
自分で作った方がカスタマイズもできるしいいのではないか?

50
デフォルトの名無しさん (ドコグロ MMb8-1Qes)[sage]   投稿日:2016/12/15 22:25:33  ID:1piDfet3M.n
>42
a=-b; がサポートされてなかった頃は、どう表現してたの?
コメント1件

51
デフォルトの名無しさん (ワントンキン MM40-Qnvt)[sage]   投稿日:2016/12/15 23:05:59  ID:4tPXC7shM.n(2)
>50
a -= b; こちらが仕様に残った
コメント1件

52
デフォルトの名無しさん (ワッチョイ 313b-1Qes)[sage]   投稿日:2016/12/15 23:46:21  ID:AelGIewF0.n
>51
a=-b;
a-=b;

意味が全然違うんですけど?
コメント1件

53
デフォルトの名無しさん (ワントンキン MM40-Qnvt)[sage]   投稿日:2016/12/16 00:01:29  ID:NxW+n95+M.n(2)
>52
K&Rの第一版を探してよく読んでみなされ。
古い構文では同じ意味になる。
コメント2件

54
デフォルトの名無しさん (ブーイモ MMb8-NNp8)[sage]   投稿日:2016/12/16 00:11:41  ID:8smapNZTM.n
マイナスbと紛らわしいから変更になったんだよ
コメント1件

55
デフォルトの名無しさん (トンモー MM8d-jDu7)[]   投稿日:2016/12/16 08:18:46  ID:xflKNdYkM.n
まぎらわしかったのは覚えてますよ。

56
デフォルトの名無しさん (ドコグロ MMb8-1Qes)[sage]   投稿日:2016/12/16 09:23:50  ID:4trABnm/M.n
>54
なるほど、
a=-b;
a= -b;
が違うってことか。

57
デフォルトの名無しさん (ドコグロ MM55-T1UI)[sage]   投稿日:2016/12/16 12:55:58  ID:r8Wq9TPYM.n
>53
手元の初版(但し石田晴久の翻訳版)だと代入演算子はop=の形だけど、それって原書?
コメント1件

58
デフォルトの名無しさん (ワントンキン MM40-Qnvt)[sage]   投稿日:2016/12/16 13:01:23  ID:NxW+n95+M.n(2)
>57
注記があるでしょ。

59
デフォルトの名無しさん (ワッチョイ fd7b-NX/j)[sage]   投稿日:2016/12/16 13:33:14  ID:hTcwG5sq0.n
>53
歴史的意味を持つ53にふさわしいレスだ

60
デフォルトの名無しさん (JP 0H21-sBe1)[sage]   投稿日:2016/12/16 14:16:34  ID:2JVojfa5H.n
注記見当たらないなぁ
俺も知識としては知っているけどどこで読んだのか全く思い出せない
それにしても初版のフォントきたねぇな
よくこれで勉強できたものだ
コメント1件

61
デフォルトの名無しさん (ワッチョイ a1bd-Vn9u)[]   投稿日:2016/12/16 17:25:53  ID:UN7/R1CA0.n(2)
俺がC言語苦手なのは「gccオプションが多様過ぎる」ことだという
事に気が付いた。
ある本で学習したコーディングを違う目的に使おうとしてもさっぱり
動かなかったり無反応だったりする。
そこでさんざん悩んで、いつも最終的に行き着く先は
「gccのオプションが適正じゃない」ってことだ。
それぞれのC言語の解説サイトとかでも、読者は当然のように
gccのオプションを正しく指定できるかのように書いてあるが
そこが一番意味わかんないんだよ。
gccのオプションで最も重要なポイントはなんなのかを教えて
くれ。
コメント1件

62
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKbf-M0Y0)[]   投稿日:2016/12/16 17:36:49  ID:7QWR4VpBK.n(4)
【gccのよく使うコマンドラインオプション】
-c
コンパイルのみでリンクはしない。
-o file.exe
-o file.o
出力ファイルを指定する。
-O0 (オーとゼロ)
最適化なし。
-O3
最適化する。
-g -ggdb
デバッグ情報を付加する。
-Idir
ディレクトリdirを#includeの検索パスに追加する。
-Ldir
ディレクトリdirをリンカの検索パスに追加する。

63
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKbf-M0Y0)[sage]   投稿日:2016/12/16 17:46:27  ID:7QWR4VpBK.n(4)
【gccの覚えておくと便利なコマンドラインオプション】
-lmylib
ライブラリlibmylib.aをリンクする。
-Wall -pedantic
初心者向けにていねいに警告をしてもらう。
-m32
32ビットプログラムとしてコンパイル・リンクする。
-m64
64ビットプログラムとしてコンパイル・リンクする。
-mwindows
ウィンドウズアプリとしてビルドする。

64
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKbf-M0Y0)[sage]   投稿日:2016/12/16 18:01:28  ID:7QWR4VpBK.n(4)
【おまけ】
--version
バージョン情報を表示する。
-v --help
詳しいヘルプを表示する。
-std=c11
C11規格でビルドする。

65
デフォルトの名無しさん (ワッチョイ 8ddc-l7I3)[sage]   投稿日:2016/12/16 18:01:46  ID:2kpKp/Uz0.n
gcc だと -std の指定も大事だよ。新しいPOSIX関数を使うためには
-std=c11 ではダメで -std=gnu11 が必要、とかね。

あと -Wall -Wextra -Werror の三連コンボが好き。
コンパイラ様に奉仕してるようなマゾな気分になれる。

66
デフォルトの名無しさん (ワッチョイ a1bd-Vn9u)[]   投稿日:2016/12/16 18:01:48  ID:UN7/R1CA0.n(2)
おおありがとう。片山さん
C言語の肝はコーディング本体よりここだよな。
最近やっとそういうことに気が付いたぜ。

67
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKbf-M0Y0)[sage]   投稿日:2016/12/16 18:16:08  ID:7QWR4VpBK.n(4)
【おまけ2】
-static
なるべくスタティックリンクとしてリンクする(依存するDLLファイルを少なくする)。
-shared
DLLファイルを作る。

※補足。ライブラリファイルを作成したいときはarというコマンドを使う。

68
デフォルトの名無しさん (ワッチョイ 9c7b-KEV/)[sage]   投稿日:2016/12/17 01:03:25  ID:lu7YUydK0.n
-O3 の最適化は、バグるんじゃねえの?

-O2 にしておく方が無難かな?

69
デフォルトの名無しさん (JP 0H40-GkUW)[]   投稿日:2016/12/17 01:12:21  ID:TZRPZZKHH.n
O3でバグるのであれば99.9%お前のコードが壊れてるだけだから。

70
デフォルトの名無しさん (ガラプー KKbf-g9Jd)[]   投稿日:2016/12/17 01:27:08  ID:vFA7y1OsK.n(6)
何でabsは小数対応してねーんだ?
パーかおめ

71
デフォルトの名無しさん (ワッチョイ f77b-GkUW)[]   投稿日:2016/12/17 01:28:41  ID:SZHJDyPT0.n(2)
fabs

72
デフォルトの名無しさん (ガラプー KKbf-g9Jd)[]   投稿日:2016/12/17 01:49:15  ID:vFA7y1OsK.n(6)
ネタかと思ったらマジであったwww
マジかよせっかく関数自作したのに

73
デフォルトの名無しさん (ワッチョイ f77b-GkUW)[]   投稿日:2016/12/17 02:07:07  ID:SZHJDyPT0.n(2)
こっちがネタかと思うわ

74
デフォルトの名無しさん (ワッチョイ 413c-0G5/)[sage]   投稿日:2016/12/17 02:26:35  ID:YWhF62K90.n
Borland C++Builder 6J Professional
を昔使ってたんですけどどこかにいってしまったので
似たようなC言語の支援アプリがあれば教えてください
コンパイルができて数値のトレースができればとりあえずいいです

75
デフォルトの名無しさん (ワッチョイ 9c42-cnOc)[]   投稿日:2016/12/17 03:27:17  ID:ajJ2f2OI0.n(2)
DevCpp

76
デフォルトの名無しさん (ワッチョイ 9c42-cnOc)[]   投稿日:2016/12/17 03:29:29  ID:ajJ2f2OI0.n(2)

77
デフォルトの名無しさん (ブーイモ MMb8-NNp8)[sage]   投稿日:2016/12/17 20:43:48  ID:OS2ZpCxxM.n
>60
俺も知識として知ってるだけだがソースはここだな

代入演算子
現在は「x -= 1」などと書かれている代入演算子
が、 当時は「x =- 1」と書かれていた。 これは「x
= -1」とまぎらわしく、あきらかな欠陥である。 こ
れについてはDennis Ritchieが多少の 説明 を書いて
いる。
http://www.tom-yam.or.jp/2238/c.html

40年前には今の形だからまさしく無駄知識
コメント1件

78
デフォルトの名無しさん (ワッチョイ ed17-jFiT)[sage]   投稿日:2016/12/17 21:00:13  ID:MJ/TQYFY0.n
forループのカウント変数をインクリメントするとき、
for (i =0;i < N;i += 1) {
hoge;
}
と書くのは異端でしょうか、やっぱりi++としなければいけないのでしょうか?
コメント3件

79
デフォルトの名無しさん (ワントンキン MM40-Qnvt)[sage]   投稿日:2016/12/17 21:02:17  ID:dZ2G3FBdM.n
>77
NEWSは1987年だから29年前の新機種でこの構文が残存していた

80
デフォルトの名無しさん (アウアウカー Sac1-0N6Z)[]   投稿日:2016/12/17 21:13:03  ID:KmLdyZjaa.n
>78
どっちでも同じなんじゃないの?

81
デフォルトの名無しさん (ブーイモ MM8d-gR9t)[]   投稿日:2016/12/17 21:20:22  ID:fx0VAANBM.n
>78
好きにせい。

82
デフォルトの名無しさん (ワッチョイ 413c-jFiT)[sage]   投稿日:2016/12/17 22:07:19  ID:NAxcui0t0.n
>78
好きにしろとは思うが異端な書き方をわざわざする奴とは関わりたくないな。

83
デフォルトの名無しさん (ワッチョイ 8da5-6+SE)[sage]   投稿日:2016/12/17 22:59:17  ID:c3RxWz0q0.n
>78
異端かと言われれば、異端ですかね。

84
デフォルトの名無しさん (ガラプー KKbf-g9Jd)[sage]   投稿日:2016/12/17 23:25:54  ID:vFA7y1OsK.n(6)
異端だという人が居たんだ

85
デフォルトの名無しさん (ガラプー KKbf-g9Jd)[sage]   投稿日:2016/12/17 23:26:22  ID:vFA7y1OsK.n(6)
異端だと書いたんだとか

86
デフォルトの名無しさん (ガラプー KKbf-g9Jd)[sage]   投稿日:2016/12/17 23:26:59  ID:vFA7y1OsK.n(6)
異端団体(怪文

87
デフォルトの名無しさん (ガラプー KKbf-g9Jd)[]   投稿日:2016/12/17 23:29:25  ID:vFA7y1OsK.n(6)
淫クリメントではなく2以上ずつ増やす場合なんかはその書き方でもいいんじゃないかと一瞬思ったけど
その場合はブロックの中でiを2倍して使うわな
コメント2件

88
デフォルトの名無しさん (ワッチョイ be17-8I6M)[sage]   投稿日:2016/12/17 23:31:47  ID:KLGPWiej0.n
>61
それオプションじゃなくてgcc拡張機能でしょ
gcc拡張マクロとか色々
基本gccでもC標準コード(C99とかC11とか)で書くべき

89
デフォルトの名無しさん (ワッチョイ 413c-0G5/)[sage]   投稿日:2016/12/18 06:29:31  ID:IKefTUjV0.n
>76
日本語のものか日本語化できるものじゃないと使えないんですが

90
デフォルトの名無しさん (ワッチョイ 5e3c-J3Q9)[sage]   投稿日:2016/12/18 07:34:21  ID:CFuzcgv70.n
>87
0 スタートならそれでいいけど、そうでないなら
> for(i =1; i < N; i += 2) {
の方が楽

91
デフォルトの名無しさん (ワッチョイ 8017-8I6M)[]   投稿日:2016/12/18 08:28:53  ID:XMF9Nrwk0.n
>87 を書いた ID:vFA7y1OsK のIME辞書について誰も触れないことが、このスレの品質の高さを表している。良い。

92
デフォルトの名無しさん (ワントンキン MM40-Qnvt)[sage]   投稿日:2016/12/18 09:00:14  ID:M1pyFWnCM.n(2)
共有あぼーんだから見てないとかだったりして

93
デフォルトの名無しさん (ワッチョイ a1c1-0N6Z)[]   投稿日:2016/12/18 14:29:08  ID:DOnS1Isy0.n
初学者なのですが、ANSI Cでバッファリングしない入出力関数(read,writeなど)は用意されていませんか?

94
デフォルトの名無しさん (アウアウカー Sac1-W/im)[sage]   投稿日:2016/12/18 16:10:21  ID:eYgTWekAa.n
setbufでバッファリング止める

95
デフォルトの名無しさん (エーイモ SEc8-WqSn)[sage]   投稿日:2016/12/18 20:40:17  ID:YPxTMQCXE.n
変数を定義するときにprintf("hello %s", "world")みたいにフォーマットで値を指定するのは何を使うのでしょうか?

↓こんな感じでフォーマットで値を代入したい
char[100] s = printf("hello %s", "world")

96
デフォルトの名無しさん (ワントンキン MM40-Qnvt)[sage]   投稿日:2016/12/18 20:42:12  ID:M1pyFWnCM.n(2)
sprintf(s,.....

97
デフォルトの名無しさん (アウアウカー Sac1-MtzF)[sage]   投稿日:2016/12/19 01:09:08  ID:ueP3u2TYa.n
キーボードからの入力を任意のn回受付けたいのですがどうすればいいでしょうか

例えばn=3だとすると
2016
12月19日
東京
のように入力と改行を三回繰り返せるようにしたいのです
できればscanfは使わない方向でいきたいと思います
nが定数なら回数分fgetsを用意すればいいとは思うのですが、不定の場合がわからなくて
よろしくお願いします
コメント1件

98
デフォルトの名無しさん (ワッチョイ ed17-jFiT)[sage]   投稿日:2016/12/19 01:58:42  ID:4+gdyXDN0.n
callocで領域確保してその分だけforで入力回せばいいのでわ?
コメント1件

99
デフォルトの名無しさん (ワントンキン MM40-E6rE)[]   投稿日:2016/12/19 12:27:19  ID:Pjh5QTzyM.n
>97
CTRL+DとかCTRL+Zでループ抜けるようにするとか?
コメント1件

100
デフォルトの名無しさん (ワッチョイ 8ddc-l7I3)[sage]   投稿日:2016/12/19 12:50:31  ID:T4wJ3ee00.n(2)
char buf[BUFFSIZE];
while (1) {
 if (fgets(buf, sizeof(buf), stdin) == NULL) break;
 if (strcmp(buf, ".") == 0) break; /* 終了時は . だけを入力 */

/* buf(入力された1行)を使って何か処理 */
}

こんな感じかな?
「とりあえず無限ループで回して終了判定はループ内で」という気持ち。
普通は fgets() を while のループ条件にすると思うけど、
この例では意図のとらえやすさを優先。

最初の入力行が西暦年ならトータル3行、年のない日付ならトータル2行、
みたいな処理が必要なら見当違いだけど。
コメント2件

101
デフォルトの名無しさん (アウアウカー Sac1-MtzF)[sage]   投稿日:2016/12/19 13:01:28  ID:4nRPbYuPa.n
>98
>99
>100
ありがとうございます
某サイトの問題を解くためのものなので詳しく説明できず申し訳ないです
最初に出題者側がnを標準入力し、その後にn行の文字列が入力され、それに対して処理するような形です
もう少しがんばってみます

102
デフォルトの名無しさん (ワッチョイ e03c-XTx4)[sage]   投稿日:2016/12/19 18:56:58  ID:2RVgkSEz0.n
>100
>  if (strcmp(buf, ".") == 0) break; /* 終了時は . だけを入力 */

"." ではなく ".\n" にしないと抜けられない
コメント1件

103
100 (ワッチョイ 8ddc-l7I3)[sage]   投稿日:2016/12/19 19:32:58  ID:T4wJ3ee00.n(2)
>102 いや、お恥ずかしい。
いつもfgets()の結果に'\n'まで格納されることを忘れる。

というか、fgets()の直後で'\n'の存在を見て入力行を全部拾えたか確認、
そのついでに'\n'を取り除いちゃうんだわ。

104
デフォルトの名無しさん (エーイモ SE8e-WqSn)[sage]   投稿日:2016/12/20 11:17:47  ID:T47v8o6SE.n
linuxにgccとclangをインストールしたんですが
/usr/includes以下をstdio.hで検索すると4つのファイルがヒットします

/usr/include/x86_64-linux-gnu/bits/stdio.h
/usr/include/c++/4.9/tr1/stdio.h
/usr/include/bsd/stdio.h
/usr/include/stdio.h


#include <stdio.h>と書いた時のstdio.hはどこからincludeされてるのでしょうか?
コメント2件

105
デフォルトの名無しさん (ワッチョイ 413c-0G5/)[sage]   投稿日:2016/12/20 13:13:13  ID:pB91CH7m0.n
Dev-Cpp 5.11を使ってC言語のソースを書いたのですが
コンパイルして実行はできたんですけど
intやcharで指定した整数値、整数列や文字列を
トレースしたものを表示することはできないでしょうか

106
デフォルトの名無しさん (ガラプー KKbf-M0Y0)[sage]   投稿日:2016/12/20 13:19:45  ID:YnwEGLVJK.n

107
デフォルトの名無しさん (ワッチョイ 1f7b-enmE)[sage]   投稿日:2016/12/20 19:21:16  ID:o+L+5jFr0.n
gcc -E source.c とかしてた
コメント2件

108
デフォルトの名無しさん (ワッチョイ 7c36-BQpQ)[sage]   投稿日:2016/12/21 00:42:22  ID:TdzlKDyl0.n(2)
volatileについて教えて下さい。
以下のコードをgccで-Oでコンパイルすると
func1は逆アセンブラでA.a=2が消えてしまいます。
clangやVCではどちらも消えませんでした。
言語仕様的にはどの動作もありなのでしょうか?

void func1() {
struct { volatile int a; } A = {1};
printf(

109
デフォルトの名無しさん (ワッチョイ 7c36-BQpQ)[sage]   投稿日:2016/12/21 00:48:15  ID:TdzlKDyl0.n(2)
すいません。失敗したようです。
https://goo.gl/Vv3SY8

110
デフォルトの名無しさん (ワッチョイ be17-8I6M)[sage]   投稿日:2016/12/21 00:53:52  ID:hCsx8Epe0.n(2)
volatile=揮発性
C言語ではコードで(代入操作等々)何もして無くても勝手に変数の中身が変わる可能性がることをコンパイラに示唆する
コンパイラはその示唆を受けてコードで(代入操作等々)何もして無くても最適化で勝手に除外することから回避させる

111
デフォルトの名無しさん (ガラプー KKbf-g9Jd)[]   投稿日:2016/12/21 02:00:53  ID:09QnAhYDK.n(2)
普通に宣言した変数は勝手にゼロで初期化されるけど、
マロックで確保した領域は初期化してくれないって認識で10年近くやってるんだけど合ってる?

あとマロックで確保することもあるけど、しないこともあるポインタを
フリーするときにいつも困る。
できるだけ初期化時にヌルを入れて、フリーするときにヌルかどうかチェックさてるんだけど、
たまに忘れてマロックしてないポインタにフリーかけて原因不明のクラッシュが発生する。
もう少しスマートなやり方はないものか。
コメント3件

112
デフォルトの名無しさん (ワッチョイ 9c7b-KEV/)[sage]   投稿日:2016/12/21 03:27:15  ID:KDR4mUhA0.n
SafePointer とか、そういうマクロ・関数でも作れば?

というか、もう既に、誰かが作っているはず

113
デフォルトの名無しさん (ブーイモ MMb8-NNp8)[sage]   投稿日:2016/12/21 03:37:07  ID:UEWExIW4M.n
freeはNULLそのまま渡しても問題ない
初期化でint *p=NULLとかすればいいだけでは?
グローバル使い回してるならfree後きちんとNULL入れるとか

114
デフォルトの名無しさん (ワッチョイ 3a13-0G5/)[sage]   投稿日:2016/12/21 07:51:57  ID:zzXbA3YE0.n(3)
>111
>普通に宣言した変数は勝手にゼロで初期化
されない

>できるだけ初期化時にヌルを入れて、フリーするときにヌルかどうかチェックさてるんだけど、
あまりよくない,ロジックとしてフリーするかしないかを決めるように作る

115
デフォルトの名無しさん (トンモー MM8d-jDu7)[]   投稿日:2016/12/21 08:34:41  ID:UE5SYSGLM.n
>111
それはそもそもプログラマとして、
仕事で作ってるんじゃないよね?

仕事でそのレベルだと
プログラマ辞めて欲しい。
迷惑だから。

116
デフォルトの名無しさん (アウアウカー Sac1-MtzF)[sage]   投稿日:2016/12/21 08:38:04  ID:ckTdq8QXa.n
デジタルネイティブ世代が8才くらいから始めて今18くらいなんやろ(ハナクソホジー

117
デフォルトの名無しさん (ワッチョイ 9d4e-i+Qt)[sage]   投稿日:2016/12/21 09:48:09  ID:mEC73fYi0.n
freeしたらNULL代入
当然ですよね皆さん

118
デフォルトの名無しさん (ワッチョイ bf42-8I6M)[sage]   投稿日:2016/12/21 09:55:04  ID:eJeA761i0.n
それより電源を切る方が速いし確実

119
デフォルトの名無しさん (ワッチョイ d1a1-YA5h)[]   投稿日:2016/12/21 11:37:02  ID:DeAhOSlZ0.n(2)
>111
グローバル変数は、0になってる。
関数とかブロックのなかにあるのは、自分で初期化しなければならない
コメント1件

120
104 (エーイモ SEc8-WqSn)[sage]   投稿日:2016/12/21 12:13:59  ID:hWdBWEeDE.n
clang -print-search-dirsでパスを確認してみました
見やすいように加工しました
これ全部辿ってもstdio.hを含むディレクトリがありませんでした
[programs]
/usr/bin
/usr/lib/llvm-3.9/bin
/usr/x86_64-linux-gnu/bin
[libraries]
/usr/lib/llvm-3.9/lib/clang/3.9.1
/usr/lib/gcc/x86_64-linux-gnu/4.9
/usr/lib/x86_64-linux-gnu
/lib/x86_64-linux-gnu
/lib64
/usr/lib/x86_64-linux-gnu
/usr/lib
/usr/lib/llvm-3.9/lib
/lib
/usr/lib
コメント1件

121
デフォルトの名無しさん (JP 0H21-sBe1)[sage]   投稿日:2016/12/21 12:25:58  ID:IT3zLaEfH.n

122
デフォルトの名無しさん (ワッチョイ 8ddc-l7I3)[sage]   投稿日:2016/12/21 12:30:57  ID:KtI+UjCH0.n
>104
>106 のリンク先の一部だけ読んで早とちりしてるな。
print-search-dirs のオプションはリンカ向けのパス指定らしい。

#include のパスはコンパイラに -v をつけて調べるみたいだぞ。
具体的には↓
$ gcc -v main.c

または >107 のプリプロセッサの出力を得る手法
$ gcc -E main.c

123
104 (エーイモ SE8e-WqSn)[sage]   投稿日:2016/12/21 18:00:41  ID:WQL39TxQE.n
-vとか-E付けたらドバっと出力がでてきてそこ確認したらstdio.hのパスが表示されてました
先輩方ありがとうございます

124
デフォルトの名無しさん (ワッチョイ 9e5b-zrF5)[]   投稿日:2016/12/21 20:11:21  ID:zZhKNwXq0.n
俺はNULLは使わない。信用できない。
\0を入れる。
コメント1件

125
デフォルトの名無しさん (ワッチョイ 3a13-0G5/)[sage]   投稿日:2016/12/21 20:38:11  ID:zzXbA3YE0.n(3)
>119
グローバル変数?何それ?

126
デフォルトの名無しさん (ワッチョイ 3a13-0G5/)[sage]   投稿日:2016/12/21 20:38:52  ID:zzXbA3YE0.n(3)
>124
0 でいいのになぜ \ をつけるのか?

127
デフォルトの名無しさん (ワッチョイ 9e17-3Pgg)[sage]   投稿日:2016/12/21 22:09:33  ID:lWq75keW0.n
NULLも0も\0も意味が違うだろう
言語仕様上全て0で書けるとしてもだ
コメント1件

128
デフォルトの名無しさん (ワッチョイ 9cba-0G5/)[sage]   投稿日:2016/12/21 22:41:46  ID:LwOfWJ5k0.n
NULLはヌルポインタなんだから正しいだろ
コメント1件

129
デフォルトの名無しさん (ワッチョイ d1a1-YA5h)[sage]   投稿日:2016/12/21 23:16:38  ID:DeAhOSlZ0.n(2)
#define BUFFER_SIZE 64
#include <stdio.h>
#include <string.h>

char clear[BUFFER_SIZE];

int main(void)
{
  char rubbish[BUFFER_SIZE];
  int k;
  for(k = 0; k < BUFFER_SIZE; k++) {
    if(rubbish[k]) {
      putchar('o');
    } else {
      putchar('_');
    }
  }

  putchar('\n');
  memcpy(rubbish, clear, BUFFER_SIZE);
  for(k = 0; k < BUFFER_SIZE; k++) {
    if(rubbish[k]) {
      putchar('o');
    } else {
      putchar('_');
    }
  }

  return 0;
}

130
デフォルトの名無しさん (ガラプー KK8d-g9Jd)[sage]   投稿日:2016/12/21 23:39:29  ID:09QnAhYDK.n(2)
ありがとう。
グロ変とロー変で初期化具合が違うのは知らなかった。
とりあえず今のところクレームは来てないが気を付けておくよ。

メモリの安全な確保と解放はやっぱり自分で実装しなきゃいけないんだな。
コメント1件

131
デフォルトの名無しさん (ワッチョイ be17-8I6M)[sage]   投稿日:2016/12/21 23:45:21  ID:hCsx8Epe0.n(2)
Cでは当たり前
普通にメモリリークやん

132
デフォルトの名無しさん (ブーイモ MMb8-sBe1)[sage]   投稿日:2016/12/21 23:56:53  ID:RIWp4NgqM.n
>130
クレームとか気をつけるとかのレベルじゃなくて
今すぐ詫び入れて修正してまわるべき件

133
デフォルトの名無しさん (ワンミングク MMff-TSM7)[]   投稿日:2016/12/22 00:20:54  ID:uQsPz27EM.n
初心者ほどvalgrindみたいなメモリチェックツール使うべきだよね。
初心者がよく使うWindowsで同じくらい簡単に扱えるツール知らんけど

134
デフォルトの名無しさん (ワッチョイ df17-g1cW)[sage]   投稿日:2016/12/22 00:50:55  ID:HKoOWrI10.n
10年やってて初心者ってのもな
10年でこのレベルのコードを書く奴を野放しにするってのはもう会社としてもダメだね
どんな試験して通したんだよと

135
デフォルトの名無しさん (ワッチョイ 3f48-5BdW)[]   投稿日:2016/12/22 03:23:33  ID:ZunrXhMa0.n
触らぬ神に祟りなし

136
デフォルトの名無しさん (ワッチョイ 7f5b-agOw)[]   投稿日:2016/12/22 04:30:13  ID:tW0chUkJ0.n
グローバル変数や、sitaticを付けた静的変数だけ起動時に0で初期化される。
動的変数は初期化されない。

モニタの前の初心者のみんな!また一つ勉強になったな!
コメント2件

137
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/22 05:27:51  ID:wOMf5z1o0.n(8)
重箱の隅をつつく様だけどC言語では動的変数は使えない
スクリプト言語などで多用される実行時に型が決定される変数がいわゆる動的変数と呼ばれるもの
コメント1件

138
デフォルトの名無しさん (ワッチョイ a74e-qjDb)[sage]   投稿日:2016/12/22 05:29:51  ID:bsgStS2K0.n(2)
正確には実行時にスタックに確保される変数だな

139
デフォルトの名無しさん (ドコグロ MMdf-PK0Z)[sage]   投稿日:2016/12/22 06:48:07  ID:YVr1LIe6M.n(8)
>137
それは動的型付け
そもそも動的変数ってあまり言わないけど静的変数云々の流れなら動的に確保される変数を示すのは自明

140
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/22 06:52:25  ID:wOMf5z1o0.n(8)
C言語に限って言えば自動変数が正しい呼称

141
デフォルトの名無しさん (ワッチョイ 0fba-i5Qz)[sage]   投稿日:2016/12/22 06:59:11  ID:LHSvnxW/0.n
今どきの初心者はWindowsでCなんかやらんだろうなぁ。

142
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/22 07:01:23  ID:wOMf5z1o0.n(8)
構文的にはC言語の型クラスは、auto、static、registerの3種類

143
デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)[sage]   投稿日:2016/12/22 07:04:29  ID:avfrOzDw0.n(5)
>127
#define NULL 0 だよ
\0 は 0 といっしょだよ
全部意味は一緒だよ
コメント2件

144
デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)[sage]   投稿日:2016/12/22 07:05:28  ID:avfrOzDw0.n(5)
>136
グローバル変数ってなんや?

145
デフォルトの名無しさん (ドコグロ MMdf-PK0Z)[sage]   投稿日:2016/12/22 07:06:44  ID:YVr1LIe6M.n(8)
malloc で確保される変数も動的に確保される変数なんだが...

146
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/22 07:17:57  ID:wOMf5z1o0.n(8)
動的に確保される領域ではあるがC言語では動的変数は使えない
だからポインタ経由でアクセスするしか方法がない
コメント1件

147
デフォルトの名無しさん (ワッチョイ 6717-g1cW)[sage]   投稿日:2016/12/22 07:38:31  ID:fTnZmeNI0.n
一時変数と永続変数ってわけ方しないと。
静的変数と動的変数だと意思疎通しにくい。
時間と空間がごっちゃになってる。

148
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/22 07:48:36  ID:wOMf5z1o0.n(8)
時間と空間って…
それを言うなら寿命とスコープだと思うけど

149
デフォルトの名無しさん (アウアウカー Sa3f-T2iK)[sage]   投稿日:2016/12/22 07:54:29  ID:tsoLK3Hka.n
ディアルガ変数とパルキア変数と名付けよう

150
デフォルトの名無しさん (ワンミングク MM5f-DNID)[sage]   投稿日:2016/12/22 08:03:06  ID:gEyN05DVM.n(2)
>143
いつの時代の話し?
ANSI になった時点で (void*)0 だった気がする
コメント2件

151
デフォルトの名無しさん (ドコグロ MMdf-PK0Z)[sage]   投稿日:2016/12/22 08:08:06  ID:YVr1LIe6M.n(8)
>146
いちいち動的型付けの話を混ぜるなよ
struct + union で Variant 型を作るとか普通にあるし文脈的にそんなこと言ってるのはお前だけ
コメント1件

152
デフォルトの名無しさん (ドコグロ MMdf-PK0Z)[sage]   投稿日:2016/12/22 08:09:37  ID:YVr1LIe6M.n(8)
>150
> グローバル変数ってなんや?
とか言ってる池沼の相手をするなよ...

153
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/22 08:15:21  ID:wOMf5z1o0.n(8)
>151
いや動的型付けの話など一言も言ってないんだが
そもそもC言語は静的型付き言語であって実行前にすべての変数の型を指定する必要がある
いきなりmallocみたいなライブラリ関数の話を持ち出したのはそっちだろ
コメント1件

154
デフォルトの名無しさん (ワンミングク MM5f-DNID)[sage]   投稿日:2016/12/22 08:16:48  ID:gEyN05DVM.n(2)
すまんorz

155
デフォルトの名無しさん (ドコグロ MMdf-PK0Z)[sage]   投稿日:2016/12/22 08:31:51  ID:YVr1LIe6M.n(8)
>153
> いや動的型付けの話など一言も言ってないんだが
はあ?
> スクリプト言語などで多用される実行時に型が決定される変数がいわゆる動的変数と呼ばれるもの

156
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/22 08:34:46  ID:wOMf5z1o0.n(8)
動的型付けと動的変数は全く違う観念の話だぞ
型システムそのものの話と変数宣言の言語実装の話をごっちゃにするなよ
コメント1件

157
デフォルトの名無しさん (ドコグロ MMdf-PK0Z)[sage]   投稿日:2016/12/22 08:42:36  ID:YVr1LIe6M.n(8)
>156
お前が言うなよ w
コメント1件

158
デフォルトの名無しさん (ワッチョイ af33-Esd/)[]   投稿日:2016/12/22 08:53:59  ID:SLe+oBSu0.n
>143
違うでしょ。
ほとんどの場合において「値」が同じだけで、「意味」は全く違うから。
とりま C faq 読もう。

更に、リテラル0は表記箇所の文脈に応じて、ヌルポと解釈されるか、値0とされるかが変わるので厄介な場合がある。
…と言うのも有名な話。
コメント2件

159
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/22 08:56:39  ID:wOMf5z1o0.n(8)
>157
結局なにが言いたいの?
C言語でも動的変数が使えると言いたいの?
例えば、JavaScriptにおけるvar型に相当するものがC言語でも使えるということ?
コメント1件

160
デフォルトの名無しさん (ワッチョイ df16-WoaB)[sage]   投稿日:2016/12/22 12:40:30  ID:I+XQXe+30.n
0を文脈によってnullpointerと解釈する設計は紛らわしいし悪手だったと思う
コメント2件

161
デフォルトの名無しさん (ドコグロ MMdf-PK0Z)[sage]   投稿日:2016/12/22 12:44:28  ID:YVr1LIe6M.n(8)
>159
この文脈で動的型付けの話をする奴は邪魔って話

162
デフォルトの名無しさん (ドコグロ MM7f-XDb5)[sage]   投稿日:2016/12/22 12:45:23  ID:l6mpIMJlM.n(2)
でも実際に困ったことなんてないし、if(!p) みたいに書けて便利

163
デフォルトの名無しさん (アウアウカー Sa3f-T2iK)[sage]   投稿日:2016/12/22 12:45:45  ID:VZ4t0q/ta.n
Cの悪手を考え出したらキリがない

164
デフォルトの名無しさん (ドコグロ MMdf-PK0Z)[sage]   投稿日:2016/12/22 12:45:57  ID:YVr1LIe6M.n(8)
>160
だね
俺もそう思う

165
デフォルトの名無しさん (ドコグロ MM7f-XDb5)[sage]   投稿日:2016/12/22 12:46:00  ID:l6mpIMJlM.n(2)

166
デフォルトの名無しさん (ワッチョイ abe3-eO0d)[]   投稿日:2016/12/22 19:48:06  ID:73EJ+NlS0.n(4)
初心者が読んだら混乱しそうだな

外部変数(グローバル変数) 0で初期化
自動変数(ローカル変数) 初期化必須
静的変数(スタティック変数) 0で初期化

0で初期化が保証されていても、明示するのが好ましい (static int global = 0;)

動的確保(実行時メモリ割り当て)

動的確保されたメモリ領域を変数に代入するとき
その変数を動的変数と呼ぶ風習はCにない

構造体と共用体でバリアント型の下りはデータ構造の話で、また別

>136は確信犯だろワロタ
コメント2件

167
デフォルトの名無しさん (ワッチョイ a74e-qjDb)[sage]   投稿日:2016/12/22 19:51:42  ID:bsgStS2K0.n(2)
動的変数という言い方はちょっと違和感あるよね

168
デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)[sage]   投稿日:2016/12/22 20:32:19  ID:avfrOzDw0.n(5)
>150
残念
#define NULL 0
が最近のトレンド
コメント2件

169
デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)[sage]   投稿日:2016/12/22 20:33:40  ID:avfrOzDw0.n(5)
>158
C FAQ を熟読しなければならないのはお前だ

170
デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)[sage]   投稿日:2016/12/22 20:35:05  ID:avfrOzDw0.n(5)
>166
外部変数と静的変数?
どちらも一緒だが?

好ましい?
どっちなんだ?
コメント1件

171
デフォルトの名無しさん (ワッチョイ abe3-eO0d)[]   投稿日:2016/12/22 21:03:13  ID:73EJ+NlS0.n(4)
>170
一緒じゃない
ただの外部変数なら別ファイルからexternで参照可能

172
デフォルトの名無しさん (ワッチョイ 633c-i5Qz)[sage]   投稿日:2016/12/22 21:09:14  ID:LRLJsAft0.n
どこまでアクセスできるかのスコープの話
何時までで生きてるかの生命の話

173
デフォルトの名無しさん (アウアウカー Sa5f-GvIT)[sage]   投稿日:2016/12/22 21:21:33  ID:H9zIAGx1a.n
外部結合だろうが内部結合だろうが静的な記憶期間を持つだろ
自動記憶期間なのは、無結合かつstaticでない場合
変数を外部、自動、静的で分けてる時点で間違い
コメント1件

174
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/22 21:32:07  ID:/ytrOsGa0.n(2)
>168
NULLが0なのはC++
ここはCスレ
コメント1件

175
デフォルトの名無しさん (ワッチョイ abe3-eO0d)[sage]   投稿日:2016/12/22 21:38:08  ID:73EJ+NlS0.n(4)
すまん漏れが無知で間違えてた
確かめてみたら>173の言う通りでつ

176
デフォルトの名無しさん (ワッチョイ d37b-jVSv)[sage]   投稿日:2016/12/22 21:44:53  ID:PGCHp0ah0.n
スコープから外れたメモリ領域も次に再利用されるまでは内容が残っている
その意味であるメモリ領域の生存期間を明言することは不可能である
パスワード等の一時的な機密情報の読み書きに利用した領域は意識してスワイプしなければならない
コメント1件

177
デフォルトの名無しさん (オッペケ Sr6f-vX8b)[sage]   投稿日:2016/12/22 21:47:39  ID:aXWpoPLSr.n
>128
ガッ!

178
デフォルトの名無しさん (ワッチョイ 6b7b-gVVB)[]   投稿日:2016/12/22 21:48:31  ID:/ytrOsGa0.n(2)

179
デフォルトの名無しさん (アウアウカー Sa5f-6FRj)[sage]   投稿日:2016/12/22 22:03:00  ID:9xT7uFfna.n
>176
それを言うならスコープじゃなくてstorage duration(記憶期間)だっていってるだろ!!!

まぁ普段は全く気にしないけどこの流れでこのミスは突っ込まざるを得んわ
コメント1件

180
デフォルトの名無しさん (ワッチョイ abe3-eO0d)[]   投稿日:2016/12/22 22:06:20  ID:73EJ+NlS0.n(4)
>179
鳥肌実で脳内再生されてワロタ

181
デフォルトの名無しさん (ワッチョイ 377b-3tOZ)[sage]   投稿日:2016/12/23 00:41:11  ID:kZ6vwWWk0.n(2)
>166
> 0で初期化が保証されていても、明示するのが好ましい (static int global = 0;)
ダメ オブジェクトが肥大する
コメント1件

182
デフォルトの名無しさん (ワッチョイ 233b-4FBo)[sage]   投稿日:2016/12/23 00:44:08  ID:R3LGx2Ye0.n(2)
>158
ガッ!


183
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/23 00:56:34  ID:i6XgFiMY0.n(3)
>181
何言ってんだ?
コメント1件

184
デフォルトの名無しさん (ワッチョイ 0790-uRrA)[sage]   投稿日:2016/12/23 01:03:18  ID:NoTKxOMK0.n
floatやポインタを実装によらず0にしたければ
暗黙の初期化を使わずに個別に入れるしかないんじゃなかったっけ?

185
デフォルトの名無しさん (ワッチョイ 9f7b-ecDe)[sage]   投稿日:2016/12/23 04:13:13  ID:Ptdk1YEU0.n(10)
ヌルポの0は単なるシンタックスシュガー

186
デフォルトの名無しさん (ワッチョイ 0f7b-Ao4e)[sage]   投稿日:2016/12/23 04:20:24  ID:UeJSrfIM0.n
ポインタの値自体が0であることに何の意味が?

問題はポインタの値がNULLかどうかでしょ?

187
デフォルトの名無しさん (ワッチョイ ff42-W2u1)[]   投稿日:2016/12/23 04:35:35  ID:S57Ht5Rq0.n(2)
ふつうの処理系だとNULLの値は0では?
ながれしらんが

188
デフォルトの名無しさん (ワッチョイ ff42-W2u1)[]   投稿日:2016/12/23 04:39:13  ID:S57Ht5Rq0.n(2)
NULL ‐ 通信用語の基礎知識

NULLマクロは、stdio.hなどをincludeすると定義される。
NULLポインターは、実装上の制約からアドレスであり、その環境内において、決して他に使用されることのない番地を用いることになる。
したがって、その値は環境によって異なる。
Cでは、移植性に配慮し、これをNULLマクロによって定義した。

0番地
殆どのプロセッサー環境で、そのアドレスは0番地が使われる。
まれに異なる番地を用いるシステムもあるが、Cの規格上、その場合も0番地と可換でなければならない。
結果として、NULLポインターは0と書いておけば、Cコンパイラーが自動的に対応してくれることになっている。

定義Cでは、殆どの環境で次のように定義されている。
#define NULL ((void *)0)
但し、C++ではこの定義をそのまま使えない。
C++はvoid *から他のポインター型に暗黙的な変換をせず、エラーになるからである。
C++では数値の0をNULLポインターとして使うことになったため、C++では次のように定義されている可能性がある。
#define NULL 0
http://www.wdic.org/w/TECH/NULL
コメント2件

189
デフォルトの名無しさん (ワッチョイ 9f7b-ecDe)[sage]   投稿日:2016/12/23 04:44:25  ID:Ptdk1YEU0.n(10)
ポインタに即値を代入することにほとんどの場合は意味はない
唯一の例外が0リテラルを代入する場合であって、この場合は0は空ポインタの糖衣構文とみなされる

要するに>188
>結果として、NULLポインターは0と書いておけば、Cコンパイラーが自動的に対応してくれることになっている。
が正解
コメント2件

190
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/23 06:43:34  ID:tydkaaKw0.n(12)
>189
> ポインタに即値を代入することにほとんどの場合は意味はない
組み込みだと普通にやってるが?
コメント1件

191
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/23 07:05:11  ID:i6XgFiMY0.n(3)
>190
日本語読めないのかな?
コメント1件

192
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/23 07:41:23  ID:tydkaaKw0.n(12)
>191
説明してみ
コメント2件

193
デフォルトの名無しさん (アウアウカー Sa5f-GvIT)[sage]   投稿日:2016/12/23 07:51:18  ID:/sFuOyUYa.n
>188
> 定義Cでは、殆どの環境で次のように定義されている。
> #define NULL ((void *)0)
言語規格で空ポインタ定数は0をvoid*に型変換したものと決まっている
規格に準拠している環境は、殆どではなく全て同等の定義だろ

194
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/23 07:59:42  ID:Ptdk1YEU0.n(10)
>192
おそらくポインタ変数に対するI/Oポートマッピングのことを言っているのだろうが、
それは単にポインタ変数の使い方だけの話で、ユーザーが変数の用途として意味づけを
行なっているだけ
C言語の言語仕様として意味を持っているのは、0が空ポインタの意味を持つというのが
ポインタに対する唯一の例外項目
コメント1件

195
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/23 08:22:17  ID:i6XgFiMY0.n(3)
>192
ほとんど の意味が解らないなら辞書引けよ
コメント1件

196
デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)[sage]   投稿日:2016/12/23 08:36:51  ID:xv4JdZit0.n
>174
>NULLが0なのはC++
http://www.kouno.jp/home/c_faq/c5.html#5

197
デフォルトの名無しさん (ワッチョイ 233b-4FBo)[sage]   投稿日:2016/12/23 08:39:43  ID:R3LGx2Ye0.n(2)
純粋なC言語使ってるのは ほとんど 組み込みだろうけど。

198
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/23 08:57:18  ID:tydkaaKw0.n(12)
>194
ごめんマジで言ってることがわからん
unsigned char *p = 0x12345678;
unsigned char d = *p;
に意味があるかどうかの話なんだが、言語仕様に違反してるとでも言うのか?

>195
意味のない代入なんてしてるアホはほとんどいないが? w
コメント1件

199
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/23 09:54:29  ID:Ptdk1YEU0.n(10)
>198
>unsigned char *p = 0x12345678;
これ自体が意味のない代入の典型
宣言済みの変数のアドレスであれば意味があるが、記憶領域のアドレスそのものをリテラル値で与えても
ほとんど意味のある結果は得られない
まあ先に述べたように組み込み用途のメモリマップトI/Oの様なアドレス固定の場合は#pragma疑似命令などで
アドレス指定するケースならあり得る
ただ上記の0x12345678のような意味のない値だと参照先のメモリアドレスの存在そのものが保証できない
コメント1件

200
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/23 09:58:31  ID:tydkaaKw0.n(12)
>199
#pragma も意味わからんが
> ただ上記の0x12345678のような意味のない値
サンプルの意味もわかってないのかよ w
コメント2件

201
デフォルトの名無しさん (ワッチョイ bf6c-i5Qz)[sage]   投稿日:2016/12/23 10:05:01  ID:jXrWBMcI0.n(2)
>200
即値を入れてもOSあり、MMUありではほとんどはねられてしまう。
0x1234みたいな値をキャストしてポインタとして扱ってそのアドレスに
アクセスできるのは組み込みの世界の話でしょ、ってことだと思うが。
コメント1件

202
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/23 10:10:44  ID:Ptdk1YEU0.n(10)
>200
本当にポインタにリテラル値を代入することの無意味さが理解できていないのか?
あえてリテラル値として代入するのであれば文字列リテラルであれば先頭アドレスとしては有効となるが、
数値のリテラル値を代入するとメモリの不正アクセスで実行時エラー起こすのが関の山だぞ
コメント1件

203
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/23 10:23:04  ID:tydkaaKw0.n(12)
>201
> アクセスできるのは組み込みの世界の話でしょ、ってことだと思うが。
はなっから組み込みでは
って書いてあるけど?

>202
> あえてリテラル値として代入するのであれば文字列リテラルであれば
それは「即値の代入」とは違う話
てかお前レベル低すぎ
コメント1件

204
デフォルトの名無しさん (ワッチョイ b77b-xrXw)[sage]   投稿日:2016/12/23 10:26:41  ID:f6uWmMmm0.n
16 ビットまでのの CPU なら
メモリーアドレスの絶対値の代入は当たり前だった
MMU な CPU と対応 OS ではやる場面自体がなくなった

205
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/23 10:26:50  ID:Ptdk1YEU0.n(10)
組み込みやっていて#pragma疑似命令を知らないとかあり得ないだろ
というかC言語でまともなプログラム組んだことあるのか?
コメント1件

206
デフォルトの名無しさん (ワッチョイ bf6c-i5Qz)[sage]   投稿日:2016/12/23 10:31:12  ID:jXrWBMcI0.n(2)
>203
だから組み込み以外で語ろうとしても意味ないよねって話
それで終わる
コメント2件

207
デフォルトの名無しさん (ワッチョイ afd2-vX8b)[sage]   投稿日:2016/12/23 11:02:41  ID:x0WLOQ6R0.n
>206
デバイスドライバーとか

208
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/23 12:24:44  ID:tydkaaKw0.n(12)
>205
> 組み込みやっていて#pragma疑似命令を知らないとかあり得ないだろ
で、#pragma が
> ポインタに即値を代入すること
にどう関係するんだ? w

>206
何を言いたいのかよくわからんが
組み込みなら
> ポインタに即値を代入することにほとんどの場合は意味はない
は間違いってことでいいよね?
コメント1件

209
デフォルトの名無しさん (ワッチョイ 6f5a-i5Qz)[sage]   投稿日:2016/12/23 12:28:52  ID:x0B+xQIa0.n
>208
>組み込みなら
>> ポインタに即値を代入することにほとんどの場合は意味はない
>は間違いってことでいいよね?
それは当たり前。でもここはマイコンのスレじゃないので
一般的には意味がないといわれてもしょうがない。
コメント1件

210
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/23 12:36:29  ID:Ptdk1YEU0.n(10)
組み込み用のコンパイラでは、I/Oポートや割り込みベクタテーブル、内蔵RAM領域などのセクションごとの
割り当て先頭アドレス、スタートアップルーチンのエントリアドレス指定などの初期設定を#pragmaで行なう
先頭アドレス以降の固定アドレスについてはポインタ配列で行なうのが一般的だろ
その場合でも移植性や再利用を考慮してRAMエリアに関しては極力 絶対アドレス指定を避けるのが常識だろ
というか知っていてとぼけているのか?
コメント1件

211
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/23 12:48:46  ID:tydkaaKw0.n(12)
>209
C言語で組み込みが一般的でない?
なかなか面白い意見だな w

>210
> その場合でも移植性や再利用を考慮してRAMエリアに関しては極力 絶対アドレス指定を避けるのが常識だろ
RAM エリアの話なんて誰もしてないけど?
そもそもアドレスを #define しとくぐらいは常識だし、ボードメーカーからヘッダーファイルで提供されることも多いぞ
ひょっとして
即値 = 数値直書き
とか思ってるのか?

212
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/23 12:51:18  ID:Ptdk1YEU0.n(10)
即値はリテラルと同一視しているな

213
デフォルトの名無しさん (ワッチョイ 9f7b-LLwc)[sage]   投稿日:2016/12/23 12:54:23  ID:Ptdk1YEU0.n(10)
あと#defineでどうやってアドレスを指定するんだよ
#defineはコンパイル時の値の置き換えだけで、コンパイラに対するバイナリの生成アドレスの指定まで出来ないだろ
コメント1件

214
デフォルトの名無しさん (ワッチョイ 374f-i5Qz)[sage]   投稿日:2016/12/23 13:03:25  ID:uHrKWqOK0.n(2)
レスバトルしてるけど
ポインターの指し先を  #pragma で制御する方法もあれば
マクロなりでポインターの指し先を直に代入することもあれば
インラインアセンブラでごりごりすいることもあれば
環境が適合してて、記述と動作が意図したとおりになってるならそれでいいや

215
デフォルトの名無しさん (ブーイモ MM3f-rd4d)[]   投稿日:2016/12/23 13:11:07  ID:0Ly89bEjM.n(2)

216
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/23 13:28:47  ID:tydkaaKw0.n(12)
>213
なんか必死にセクションの話に持っていきたいみたいだが、ポートアドレスとかの話だからな

217
デフォルトの名無しさん (ワッチョイ 9f7b-ecDe)[sage]   投稿日:2016/12/23 13:44:23  ID:Ptdk1YEU0.n(10)
もう疲れたわ
とりあえず元に戻って、>189で言った通り
「ポインタのアドレスで特別な意味を持つのは0リテラルだけでこれは空ポインタのシンタックスシュガーである」
これだけでもういいよ

218
デフォルトの名無しさん (ワンミングク MM5f-DNID)[sage]   投稿日:2016/12/23 13:47:00  ID:qrHoZZWXM.n
ナルポ

219
デフォルトの名無しさん (ワッチョイ 7f5b-agOw)[]   投稿日:2016/12/23 13:55:25  ID:lJhRFWoH0.n
まぁ組込屋ならアドレス操作に関しては譲れないだろう
とことん争うべき。
コメント1件

220
デフォルトの名無しさん (ドコグロ MM1f-PK0Z)[sage]   投稿日:2016/12/23 14:06:35  ID:VjYtccRDM.n
>219
#pragma とか言い出すような知ったか君を苛めるなよ

221
デフォルトの名無しさん (アウアウカー Sa5f-GvIT)[sage]   投稿日:2016/12/23 14:26:08  ID:AC5C5wbVa.n
規格外で良いならposixのMAP_FAILEDは特別な意味を持つな
これもポインタに即値代入するケースか
コメント1件

222
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/23 15:23:46  ID:tydkaaKw0.n(12)
>221
MAP_FIXED のことか?
コメント1件

223
デフォルトの名無しさん (エーイモ SEff-cm93)[sage]   投稿日:2016/12/23 17:18:18  ID:Nly1KFTtE.n
指定した位置の文字をヌル文字に変更したいんですが
例えば先頭の文字をヌル文字に置換するためにこういう風に書くと何も表示されなくなりました
どうやって置換するんでしょうか?

#include <stdio.h>

int main()
{
char name[3] = "abc";
name[0] = '\0';
printf("%s", name);

return 0;
}
コメント3件

224
デフォルトの名無しさん (アウアウカー Sa5f-GvIT)[sage]   投稿日:2016/12/23 17:31:00  ID:iWTFjrQCa.n
>222
mmap失敗時の返り値
コメント1件

225
デフォルトの名無しさん (ワッチョイ 0f9b-uRrA)[sage]   投稿日:2016/12/23 17:31:00  ID:XErTRk4H0.n(2)
何が表示されて欲しいのか

" bc"と表示されて欲しいなら、スペースを入れればいい
char name[4] = "abc";
name[0] = ' ';
コメント1件

226
デフォルトの名無しさん (ワッチョイ 374f-i5Qz)[sage]   投稿日:2016/12/23 17:31:29  ID:uHrKWqOK0.n(2)
%s は 頭から \0が見つかったら表示を打ち切る
だから name[0] = '\0' の代入を実施すると 表示はそこで打ち切られる=何も表示しない

printf("[%c][%c][%c]", name[0], name[1], name[2]);

227
デフォルトの名無しさん (ブーイモ MM3f-rd4d)[sage]   投稿日:2016/12/23 17:32:23  ID:0Ly89bEjM.n(2)
Cの文字列は'\0'終端なんだから当然
name[1]='\0';ならaが表示されるだろ

228
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKdf-t2A3)[sage]   投稿日:2016/12/23 17:33:50  ID:3xdKhrkhK.n(2)
>223
C文字列はヌル文字を文字列の終端として解釈される。
つまり、ヌル文字があったら、そこで文字列の終わりと見なされる。
確認したいなら一文字ずつスキャンするか、ヌル文字の後のアドレスを指定する。

229
デフォルトの名無しさん (ドコグロ MM1f-PK0Z)[sage]   投稿日:2016/12/23 17:35:48  ID:LZUt3xBXM.n
>224
意味わからん...

230
デフォルトの名無しさん (アウアウイー Sa4f-T2iK)[sage]   投稿日:2016/12/23 17:39:23  ID:3aRx8Kt+a.n
当然とは言うが文字列をナル文字で終了させないプログラマーは割といてだな…勘弁してほしい
コメント1件

231
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK6f-t2A3)[sage]   投稿日:2016/12/23 17:42:56  ID:3xdKhrkhK.n(2)
ちなみに、C++文字列(std::string)は、長さのデータを持っていて、ヌル文字を含むバイナリーデータを格納できる。

232
デフォルトの名無しさん (ワッチョイ 6717-g1cW)[sage]   投稿日:2016/12/23 17:55:32  ID:sMdCo7/p0.n
fwrite() を使えと誰も言わないのは休日ゆえか

233
デフォルトの名無しさん (ワッチョイ 633c-i5Qz)[sage]   投稿日:2016/12/23 18:18:02  ID:te4/+lr90.n
>230
バッファサイズを渡して、そのサイズ内で打ち切る系は
\0 を含んでバッファ内に収めるのか
\0 を含まずにバッファ内に収めるかで変わってくるねー

234
デフォルトの名無しさん (ワッチョイ 7bdc-aVNS)[sage]   投稿日:2016/12/23 19:51:00  ID:RXSiKULR0.n
>223 の質問の本筋とは関係ないことだけど、
char name[3] = "abc"; // 文字列の格納先としては配列の要素が不足
という間違いを

>225 の回答では何の説明もなく
char name[4] = "abc"; // 終端の'\0'の分まで配列を確保
と当然のごとく修正してるのがちょっと面白い。
コメント1件

235
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/23 20:09:49  ID:tydkaaKw0.n(12)
>234
> という間違いを
勝手に間違いにするなよ w
そもそもそういう風に修正するなら
char name[] = "abc";
の方がいいと思うぞ

236
デフォルトの名無しさん (ワッチョイ 03e7-zpPG)[sage]   投稿日:2016/12/23 20:28:16  ID:OyCrFhmq0.n
いや、間違いだろ
直後にprintfで%s使ってる以上、文字列として扱わないかもしれないとかいう逃げ道もないし
まさにNULL終端を理解してないのがやらかす典型以外の何物でもない
コメント1件

237
デフォルトの名無しさん (ワッチョイ df17-g1cW)[sage]   投稿日:2016/12/23 20:33:12  ID:kORjsFtN0.n(4)
移植性の話が飛び出して#pragmaが出て来る謎
#pragma自体がコンパイラ依存の移植性が無いものなんだが

238
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/23 20:48:02  ID:tydkaaKw0.n(12)
>236
>223 が何をやりたかったのかは不明だが
> name[0] = '\0';
ってやってるから規格上間違いなんて無いんだが?
コメント1件

239
デフォルトの名無しさん (ワッチョイ 0f9b-uRrA)[sage]   投稿日:2016/12/23 21:35:50  ID:XErTRk4H0.n(2)
>238
" bc"と表示させたい場合は問題になるからね
説明を端折ったのは悪かった
コメント2件

240
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/23 21:38:34  ID:tydkaaKw0.n(12)
>239
> " bc"と表示させたい場合は
だからそんな仮定を勝手に置いて語るなよ
って話

241
デフォルトの名無しさん (ワッチョイ df17-g1cW)[sage]   投稿日:2016/12/23 22:15:09  ID:kORjsFtN0.n(4)
>" bc"と表示させたい場合は
printf("%s", name + 1);

242
デフォルトの名無しさん (アウアウカー Sa5f-GvIT)[sage]   投稿日:2016/12/23 22:50:58  ID:2lE868uqa.n
>239
精度指定で出力を2byteに制限すれば、問題にならないけど?

243
デフォルトの名無しさん (ワッチョイ f742-g1cW)[sage]   投稿日:2016/12/23 22:56:31  ID:N7+vTzlD0.n
printf(" %s", name + 1);

244
デフォルトの名無しさん (ワッチョイ 377b-3tOZ)[]   投稿日:2016/12/23 23:38:23  ID:kZ6vwWWk0.n(2)
>183
バカにはわからないようだが、初期化するにはそのための初期化データが必須
その分オブジェクトが肥大する
コメント1件

245
デフォルトの名無しさん (ワッチョイ df17-g1cW)[sage]   投稿日:2016/12/23 23:51:06  ID:kORjsFtN0.n(4)
> 指定した位置の文字をヌル文字に変更したいんですが
もしかして、
指定した位置の文字を半角空白文字にとして表示したいんですが
の間違い???
だとしたらそもそもの質問が間違えてるのだから的を得ない解答が返ってきても仕方がない話

246
デフォルトの名無しさん (ワッチョイ df17-g1cW)[sage]   投稿日:2016/12/23 23:58:32  ID:kORjsFtN0.n(4)
グローバル変数でもゼロ初期化前提でコーディングするのは行儀が悪いコーディングだな
Cでは静的初期化でも動的初期化でも、変数にアクセスする際は必ず初期化するべし
コメント1件

247
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/24 00:04:06  ID:13QAQt3w0.n(9)
>244
実際にやってみろよ0で初期化を。
コメント1件

248
デフォルトの名無しさん (ワッチョイ 7f5b-agOw)[]   投稿日:2016/12/24 00:19:10  ID:R0w0jZmS0.n(3)
宣言時に必要の無い初期化をしても意味が無い。
無駄な処理
コメント2件

249
デフォルトの名無しさん (ワッチョイ df17-g1cW)[sage]   投稿日:2016/12/24 00:21:05  ID:1i4c8FXF0.n
宣言時に必要の無い初期化は宣言時にする必要はない
しかしアクセス前には必ず初期化はすることグローバル変数でも
コメント1件

250
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/24 00:23:33  ID:13QAQt3w0.n(9)
>248
お前 ID:kZ6vwWWk0 ?
だったら主張変わってるけど?

251
デフォルトの名無しさん (ワッチョイ 7f5b-agOw)[]   投稿日:2016/12/24 00:25:21  ID:R0w0jZmS0.n(3)
勘ぐり過ぎ
コメント1件

252
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/24 00:28:57  ID:13QAQt3w0.n(9)
>251
じゃあ関係ない話横から突っ込まないでくれる?

253
デフォルトの名無しさん (ワッチョイ 7f5b-agOw)[]   投稿日:2016/12/24 00:32:14  ID:R0w0jZmS0.n(3)
>246
>248
>249

の話だ。 病院行ったが良いぞ

254
デフォルトの名無しさん (ワンミングク MM5f-DNID)[sage]   投稿日:2016/12/24 00:36:45  ID:kPI05Gb3M.n(2)
変数の配置セグメントBSS か DATA か?なんて環境によるだろうに

255
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/24 00:43:03  ID:13QAQt3w0.n(9)
どこに配置されようがローカル変数意外は0で初期化されることが規格で保証されている。

256
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/24 02:44:39  ID:13QAQt3w0.n(9)
非ローカル変数を0で初期化するコードを書いても書かなくても生成されるコードに違いはない余程のマヌケなコンパイラじゃない限りな。

非ローカル変数に初期化書かないポリシーだというなら別にそれで構わん、
それが癖になってローカル変数で初期化忘れたとか、それを中途半端に真似した初心者とかが未定義動作踏もうが、それはお前の責任だ。

しかし、間違った理由、もしくはお前の環境ローカルの常識で書かない事を強制させるような事を言うのは止めろ。

257
デフォルトの名無しさん (ワッチョイ 0f3c-i5Qz)[sage]   投稿日:2016/12/24 05:25:54  ID:HU8wPv9h0.n(2)
whileの行で「宣言が正しく終了していない」とエラーが出てしまいます
ループさせる文もおそらくうまくいかないと思われます
疑似言語をC言語化しようとしてるんですが
購入[K[.品番=対象[T].品番
という購入と対象という2つの異なる配列の配列品番や配列数量を
分岐させたり代入させたりしたいです
何かわかりづらくなりましたが要するにいくつも項目が並んでる表を操作したいわけです
疑似言語をC言語化すること自体無理なんでしょうか?

while(K>0,T<=taishougyousu){
if(sinaban[kounyu[K]]=sinaban[taishou[T]]){
};
suryou[taishou[T]]=suryou[kounyu[K]];
K=ptr[K];
T=T+1;
if(sinaban[kounyu[K]]<sinaban[taishou[T]])
K=ptr[K];
else
T=T+1;
}

258
デフォルトの名無しさん (ワッチョイ 633c-i5Qz)[sage]   投稿日:2016/12/24 05:33:12  ID:y7L7nGQ60.n(2)
while よりの前の記述がおかしいだけだと思うけど
} が足りないとか ) が足りないとか ; が足りないとか そういう類のミス

http://codepad.org/R7TdNtU5
コメント1件

259
257 (ワッチョイ 0f3c-i5Qz)[sage]   投稿日:2016/12/24 06:07:13  ID:HU8wPv9h0.n(2)
レスありがとうございます
教えていただいた構文でも同じエラーが出るみたいなので
おそらくはwhileで論理積を使った2つの条件指定か
if(sinaban[kounyu[K]]=sinaban[taishou[T]]){
};
あたりの二重の[ ]が無理だと思われます
なのでかなり崩した構文を書かないと疑似言語をC言語化できないと考えます

260
デフォルトの名無しさん (ワッチョイ 633c-i5Qz)[sage]   投稿日:2016/12/24 06:20:49  ID:y7L7nGQ60.n(2)
2重の[] は関係ないし 普通に使えるし
Cの文法学びなおしな
コメント1件

261
デフォルトの名無しさん (ワッチョイ 7bdc-aVNS)[sage]   投稿日:2016/12/24 07:32:09  ID:0UyY/BKM0.n
「宣言が正しく終了していない」ってエラーメッセージが怪しい。
>258 の言う通り、whileの直前の行で変数を宣言してて
そっちの行末に ; をつけ忘れたとかの定番パターンだと思う。

ところで while の条件 (K>0,T<=taishougyousu) だけど、
「Kが0より大きい、かつ、Tがtaishougyousu以下」という意図なら
カンマ演算子でなく論理積 && を使うべきところだね。
while (K>0 && T<=taishougyousu) ...
文法的にはエラーじゃないせいで見落としやすいかと、あえて指摘させてもらう。
コメント1件

262
デフォルトの名無しさん (ブーイモ MM3f-AvAH)[sage]   投稿日:2016/12/24 07:43:22  ID:+wOpvYJrM.n(2)
whileの{}とif(shin...の{}がオーバーラップしてんな
意図が分からない
コメント2件

263
デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)[sage]   投稿日:2016/12/24 07:44:23  ID:XrRMaYjq0.n(2)
>247
だから馬鹿にはわからない,といっているだろう?しつこいな
コメント1件

264
デフォルトの名無しさん (ブーイモ MM3f-AvAH)[sage]   投稿日:2016/12/24 08:04:35  ID:+wOpvYJrM.n(2)
まだやってんのかよ
・規格では静的変数はゼロ初期化が保証されてる
・だが初期値を書いた方が品がよいとされる。組込など省略される場合もあるので
・まともなコンパイラなら0初期値入れても最適化するからコードは増えない
コンパイルしたコード見りゃわかるだろ

265
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/24 08:52:08  ID:dPbQS77J0.n(2)
> while(K>0,T<=taishougyousu){
みたいに無理矢理一行に納めたがる(しかもたぶん意図と違う)とか
> };
のような無駄な ; が入っていても平気な人にはCは向いてないと思う
コメント1件

266
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/24 09:11:12  ID:13QAQt3w0.n(9)
>263
ほんと馬鹿には解らないってご自分で証明してくれてありがとうございます

267
デフォルトの名無しさん (ワンミングク MM5f-DNID)[sage]   投稿日:2016/12/24 09:23:24  ID:kPI05Gb3M.n(2)
FEED C0DE

268
デフォルトの名無しさん (ワッチョイ f719-8bDS)[sage]   投稿日:2016/12/24 10:08:41  ID:RCbQY4X80.n
以後罵り合いが終わるまでこちらで

C言語なら俺たちに聞け パート0001
http://echo.2ch.net/test/read.cgi/tech/1341648926/

269
デフォルトの名無しさん (ワッチョイ 13a5-PUH/)[sage]   投稿日:2016/12/24 11:29:52  ID:Bp2kWppi0.n
色々経験すると、それぞれ言ってることは分かるんだけどね。
コメント1件

270
デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)[sage]   投稿日:2016/12/24 15:04:56  ID:XrRMaYjq0.n(2)
>269
うんわかる
オブジェクトコードまで視点が到達している人
規格には書かれていないことだと喝破できる人
さまざまだね

271
デフォルトの名無しさん (アウアウカー Sa4f-6FRj)[sage]   投稿日:2016/12/24 16:14:51  ID:1LCBxinAa.n
グローバル変数は初期化してもしなくてもオブジェクトサイズ変わんないでしょ?コンパイラとリンカで配置されるときに0クリアされるか値を指定されるかの違いだけで。
コメント2件

272
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/24 16:27:26  ID:13QAQt3w0.n(9)
>271
0で初期化するかそれ以外の値で初期化するかでサイズは変わる。
バカには理解出来ないみたいだけど
コメント1件

273
デフォルトの名無しさん (ワッチョイ 837b-DNID)[sage]   投稿日:2016/12/24 16:28:07  ID:DNE92dFu0.n
BSSはプログラムローディング時にOSが割り当てる
DATAはリンク時に初期値が確定する。
VCだとデバッグビルドの時は0初期化されているが、リリース版で
保障されている訳ではない

ちなみにFE ED C0 DE は OS-9/680x0 がアプリケーションに
メモリを割り当てした時にパディングするパターン。
WINDOWSにも独自のパターンがあるので調べてちょ

COFFの資料
http://www.delorie.com/djgpp/doc/coff/scnhdr.html
コメント1件

274
デフォルトの名無しさん (ワッチョイ f742-g1cW)[sage]   投稿日:2016/12/24 16:42:54  ID:n3Z74Q5b0.n
>272
グローバル変数って、0でするのと0以外でするので、オブジェクトサイズが変わるんですか?
サイズが変わるってことはsizeof使って分かりますか?
コメント1件

275
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/24 16:48:29  ID:13QAQt3w0.n(9)
>274
流れからオブジェクトサイズというのはオブジェクトファイルのサイズの事を差してると解釈して言ったんだが(それ以外の話は出てきてない)お前は多分違う解釈してる。
オブジェクトファイルのサイズは生成されたコードのファイルのサイズ見れば解る

276
デフォルトの名無しさん (ワッチョイ 6b7b-zpPG)[]   投稿日:2016/12/24 16:58:36  ID:13QAQt3w0.n(9)
>273

Cの規格

5.1.2 Execution environments

All objects with static storage duration shall be initialized (set to their
initial values) before program startup.


初期値で初期化されることが規格で保証されてんの。


277
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/24 17:25:34  ID:dPbQS77J0.n(2)
>271
変わるかどうかは処理系やコンパイルオプションによる

278
デフォルトの名無しさん (アウアウカー Sa5f-GvIT)[sage]   投稿日:2016/12/24 17:45:51  ID:AF3lgZMka.n
6.9.2 外部オブジェクト定義

翻訳単位が,ある識別子に対する仮定義を一つ以上含み,かつその識別子に対する外部定義を含まない場合,その翻訳単位に,翻訳単位の終わりの時点での合成型,及び 0 に等しい初期化子をもったその識別子のファイル有効範囲の宣言がある場合と同じ規則で動作する。

0で初期化するのと同じ規則で動作する、以外に規定はない。
仮定義を持たないために0でも必ず初期化するっていうのは、間違ってないと思う。

279
257 (ワッチョイ 0f3c-i5Qz)[sage]   投稿日:2016/12/25 03:22:34  ID:2jcHOLGG0.n
>260
かなり時間がかかりましたが二重の[]でもエラーはなくなりました

>261
{ と }の位置がおかしかったですね。あと最初の#で始まる関数の宣言が
おかしかったのとintで始まる配列の宣言がかなり足りなかったですね
&&は確かにその通りでカンマだと後者の条件を優先するループになるのかな

>262
ifので条件がNOの方に分岐したところにまたifで分岐を作ろうとしたんですけど
あまり上手くいってません

>265
いったい学生の頃をどこまで思い出せばいいのか。全部思い出すわけにはいかないし
C言語はほどほどにしておこうと思っています
コメント1件

280
デフォルトの名無しさん (ワッチョイ 0f7b-Ao4e)[sage]   投稿日:2016/12/25 10:17:44  ID:A+32p0u30.n
なんでオブジェクトファイルの話なのにだれも実際のアセンブリで比較しようとしないの?
コメント2件

281
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/25 10:18:09  ID:UjprWodd0.n(2)
>280
したいならすれば?

282
デフォルトの名無しさん (ワッチョイ 837b-DNID)[sage]   投稿日:2016/12/25 12:14:17  ID:6QEq7FnE0.n(3)
無駄

283
デフォルトの名無しさん (アウアウカー Sa5f-GvIT)[sage]   投稿日:2016/12/25 12:20:44  ID:/KLlwacta.n
>280
規格の話をするのに処理系の実装は関係ないからな
常に一致するとまで言うつもりはないし、サイズの変わる処理系の存在も否定しない

個人的には、数十バイトを気にするような開発してないからどうでも良いわ

284
デフォルトの名無しさん (ワッチョイ 6b7b-TSM7)[]   投稿日:2016/12/25 12:21:33  ID:UjprWodd0.n(2)
自分が間違ってた事を認識したら逃げるんじゃなくてちゃんとごめんなさいしてほしいよね。
バカには出来ないだろうけど。

285
デフォルトの名無しさん (ワッチョイ d37b-jVSv)[sage]   投稿日:2016/12/25 12:40:31  ID:/8TRU5/W0.n
>279
疑似コードのほうを晒すとすんなり回答が得られると思うよ
コメント1件

286
デフォルトの名無しさん (ワッチョイ b719-tuBs)[sage]   投稿日:2016/12/25 21:35:19  ID:JV5w786K0.n(2)
モジュールAからモジュールBにデータ(変数値)を引き渡す際に、
モジュールAの処理の中でモジュールBの関数(当該データを引数として実行する関数)を実装する(実装1)のと、
モジュールBの処理の中でモジュールAの関数(当該データをポインタで渡す関数)を実際する(実装2)のとで、
メリデメがあるものでしょうか?
コメント2件

287
デフォルトの名無しさん (ワッチョイ 837b-DNID)[sage]   投稿日:2016/12/25 21:43:47  ID:6QEq7FnE0.n(3)
スタックに積むコスト分は違うな
8086のLモデルならセグメントオーバーライドのペナルティーも
発生するな
コメント1件

288
デフォルトの名無しさん (ワッチョイ b719-tuBs)[sage]   投稿日:2016/12/25 21:49:52  ID:JV5w786K0.n(2)
>287
すみません、理解できなかったのでもう少し詳細まで教えて頂けると助かります、、
対象としているシステムは組み込み系ですがx86系の話でも構いません

289
デフォルトの名無しさん (ワッチョイ 837b-DNID)[sage]   投稿日:2016/12/25 23:07:36  ID:6QEq7FnE0.n(3)
例えばSuperHは
16ビット幅固定命令なので、32bitの値をイミディエイトでは生成
出来ないのでどこかに置く。置いた場所が±255以内になければ更にオーバーヘッドがかかる。実行時に邪魔になるので余分なjumpも入る。
ポインタで渡せばコストは想定可能。こちらの方が軽い場合が多い。

290
デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)[sage]   投稿日:2016/12/26 00:28:50  ID:8ctcDGWr0.n
>286
モジュールって言うのが関数なのかなんなのかよくわからん

> モジュールAからモジュールBにデータ(変数値)を引き渡す際に
と言うのは A から B を呼び出してるように思うから

> モジュールAの処理の中でモジュールBの関数(当該データを引数として実行する関数)を実装する(実装1)のと
は理解できるけど

> モジュールBの処理の中でモジュールAの関数(当該データをポインタで渡す関数)を実際する(実装2)のとで
はどう言うことなのかよくわからん

291
デフォルトの名無しさん (ワッチョイ ef9f-h9rX)[sage]   投稿日:2016/12/26 01:04:31  ID:9Yo0yJt10.n
俺なんかC言語で関数内関数を実装?JITってやつか?ってとこで躓いた

292
デフォルトの名無しさん (ブーイモ MM3f-AvAH)[sage]   投稿日:2016/12/26 01:34:55  ID:elmy+i1AM.n
案1
Axx(){
Bxx(data);
}
案2
Bxx(){
data = Axx();
}
ってことじゃねーのかな?
正直好きにしろとしか

293
デフォルトの名無しさん (ワッチョイ 6f68-YPDL)[sage]   投稿日:2016/12/26 10:50:12  ID:+6Dna25w0.n
>286
Aに実装する場合はAがB依存になる
Bに実装する場合はBがA依存
Aが汎用的なモジュールならAに実装はしないかな俺なら

294
デフォルトの名無しさん (ワッチョイ df17-g1cW)[sage]   投稿日:2016/12/26 11:02:36  ID:xO25f93t0.n
データは互いに疎結合の関係がよいよ
密結合だと後々の変更に耐えられなくなる

295
デフォルトの名無しさん (ワッチョイ 13a5-PUH/)[sage]   投稿日:2016/12/26 22:41:47  ID:xttRzHTo0.n
そうしたい気持ちは山々なのだが。

296
デフォルトの名無しさん (ワッチョイ a74e-qjDb)[sage]   投稿日:2016/12/26 23:38:50  ID:i5XrEMUf0.n
案1
Axx(){
 Bxx(data);
}

案2
Bxx(){
 Axx(&data);
}

って言ってるように読めるのだが違う気もする・・
コメント1件

297
デフォルトの名無しさん (ワッチョイ 6f68-YPDL)[sage]   投稿日:2016/12/27 01:41:47  ID:FYrmtqZh0.n
>296ならこうか?
http://ideone.com/1Q9xPZ
やはりモジュール間の依存方向の違いぐらいじゃまいか?

298
257 (ワッチョイ 0f3c-i5Qz)[sage]   投稿日:2016/12/27 05:09:12  ID:32lhYaDn0.n(3)
>262
一度目のelseつまり一度目の分岐でNOに行く部分が上手くいってません
「elseの位置が誤っている」とエラーが出てしまいます
二度目のelseは上手く機能したのになぜでしょうか

while(K>0 && T<=taishougyousu){
if(sinaban[kounyu[K]]=taishousinaban[taishou[T]])
taishousuryou[taishou[T]]=suryou[kounyu[K]];
K=ptr[K];
T=T+1;
else
if(sinaban[kounyu[K]]<taishousinaban[taishou[T]])
K=ptr[K];
else
T=T+1;

}
>285
疑似言語だと
■(K>0)and(T<=対象行数
|▲購入[K].品番=対象[T].品番
||・対象[T].数量←購入[K].数量
||・K←購入[K].ptr
||・T←T+1
|──                 ←この分岐のNOを現わすelseでエラー
||▲購入[K].品番=対象[T].品番
|||・K←購入[K].ptr
||──
|||・T←T+1
||▼
|▼

コメント1件

299
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKdf-t2A3)[sage]   投稿日:2016/12/27 05:12:59  ID:GaV38g+FK.n(4)
>298
{ } で囲む。

300
デフォルトの名無しさん (ワッチョイ 0f3c-i5Qz)[sage]   投稿日:2016/12/27 06:29:20  ID:32lhYaDn0.n(3)
{ }で囲むとエラーは出なくなりました
しかしelseの分岐が無視されifで指定した条件を満たしてなくても
条件がyesの方の文が実行されます。その後はwhileのループに戻ります
elseとelse ifどっちも試してみましたがどうしても条件がNOの文に飛んでくれません
ググってもC言語の本を読んでも分かりません。諦めた方がいいでしょうか

301
デフォルトの名無しさん (ワッチョイ 0f9b-uRrA)[sage]   投稿日:2016/12/27 06:35:04  ID:Z7RkHQtm0.n(2)
代入(=)じゃなくて比較(==)すべきなんじゃ?

302
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK6f-t2A3)[sage]   投稿日:2016/12/27 06:36:09  ID:GaV38g+FK.n(4)
if(sinaban[kounyu[K]]=taishous

代入になってる。=と==は間違いやすいから気をつけよう。

303
デフォルトの名無しさん (ワッチョイ 2703-T2iK)[sage]   投稿日:2016/12/27 06:37:09  ID:gKIG9FI00.n
==とかじゃなくて?

304
デフォルトの名無しさん (ワッチョイ 0f3c-i5Qz)[sage]   投稿日:2016/12/27 06:44:49  ID:32lhYaDn0.n(3)
ありがとうございます。==にしたら無事に動きました

1行にこんなに時間がかかるなんてC言語は難しいですね

305
デフォルトの名無しさん (ドコグロ MMdf-BQyC)[sage]   投稿日:2016/12/27 08:19:35  ID:CVPZfFKkM.n(2)
みんなの疑問:
なぜにわざわざ自分からめんどくさい言語を選んで文句言うかなぁ...

306
デフォルトの名無しさん (ワッチョイ 374f-i5Qz)[sage]   投稿日:2016/12/27 09:02:08  ID:JGKzPuHu0.n(3)
分かってないのに手を出して火傷

307
デフォルトの名無しさん (ワッチョイ 0f9b-uRrA)[sage]   投稿日:2016/12/27 09:29:18  ID:Z7RkHQtm0.n(2)
慣れの問題でしょ
ifで代入は教科書の定番になるくらいのミスだし
コメント2件

308
デフォルトの名無しさん (オッペケ Sr6f-vX8b)[sage]   投稿日:2016/12/27 12:11:00  ID:GZlBMBhCr.n
>307
ワーニング出るから、普通、気づくだろうにな。

309
デフォルトの名無しさん (アウアウカー Sa3f-T2iK)[sage]   投稿日:2016/12/27 12:13:48  ID:z54J35DFa.n
代入に=を使ったのはなんでなんだろうな
=は比較のときに使うかもとは思わなかったのか
「やっべー=は代入に使っちまったよ。修正めんどいから比較は==でいいか」的な軽さを感じる

310
デフォルトの名無しさん (ワッチョイ f719-8bDS)[sage]   投稿日:2016/12/27 12:34:08  ID:ROG9Kex30.n
Fortranからの引継ぎらしいな。
Pascalは:=が代入らしい。

311
デフォルトの名無しさん (ワントンキン MM3f-5BdW)[]   投稿日:2016/12/27 12:34:45  ID:AOY0qlPhM.n(3)
もしかして==ってCだけ?
おれCから入ったからなんの違和感もないけど
コメント1件

312
デフォルトの名無しさん (ワントンキン MM3f-5BdW)[]   投稿日:2016/12/27 12:37:18  ID:AOY0qlPhM.n(3)
それか!

313
デフォルトの名無しさん (ブーイモ MMaf-XloP)[]   投稿日:2016/12/27 12:40:30  ID:ubQxao/9M.n
>311
java も js も perl も C# やろ。

314
デフォルトの名無しさん (ドコグロ MM7f-l7jk)[sage]   投稿日:2016/12/27 12:44:41  ID:oa8lMfe3M.n
イコール記号は数学しか知らない人には比較演算子にしか見えないだろうね
その点はPASCALの:=とかBASICのLETが省略されてるという文法の方が分かりやすい
でも=と==を間違える人なんていないし、たいした問題じゃないな

315
デフォルトの名無しさん (ワッチョイ 9f7b-ecDe)[sage]   投稿日:2016/12/27 12:46:42  ID:jF9jTMAt0.n

316
デフォルトの名無しさん (ドコグロ MMdf-BQyC)[sage]   投稿日:2016/12/27 12:56:13  ID:CVPZfFKkM.n(2)
>307
慣れで解決するならコーディングミスの半分はなくなると思う

317
デフォルトの名無しさん (JP 0Hbf-i5Qz)[sage]   投稿日:2016/12/27 13:43:58  ID:gmRiJ4C2H.n
文字列から、Aのみを抜き出すにはどうすればいい?
#include <stdio.h>しか使ってはいけない・・・
コメント2件

318
デフォルトの名無しさん (ワッチョイ 374f-i5Qz)[sage]   投稿日:2016/12/27 14:40:15  ID:JGKzPuHu0.n(3)
void foo(const char* str)
{

319
デフォルトの名無しさん (ワントンキン MM3f-5BdW)[]   投稿日:2016/12/27 14:41:39  ID:AOY0qlPhM.n(3)
strstr使えないなら
forで回してstrncmpとか?

320
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK6f-t2A3)[sage]   投稿日:2016/12/27 15:27:16  ID:GaV38g+FK.n(4)
>317
文字列を配列のように一文字ずつスキャンして、'A'があれば出力する。

321
デフォルトの名無しさん (ワッチョイ 374f-i5Qz)[sage]   投稿日:2016/12/27 15:33:57  ID:JGKzPuHu0.n(3)
for ( ; *str; str++) { if (*str == 'A') printf("Aみつかった\n"); }

322
デフォルトの名無しさん (ガラプー KKdf-t2A3)[sage]   投稿日:2016/12/27 16:03:47  ID:GaV38g+FK.n(4)
品番はしなばんでもひんばんでもOKか

323
デフォルトの名無しさん (ワッチョイ df17-g1cW)[sage]   投稿日:2016/12/27 17:00:28  ID:LWrh44QV0.n(4)
言語の記法、文法、構文に目を通さないで
いきなり書きつらって動かないとか
初歩中の初歩の初心者以下の質問ばかり
リファレンス見ろよで終わる話

324
デフォルトの名無しさん (ワッチョイ 675b-ny8H)[]   投稿日:2016/12/27 17:06:13  ID:W9hRCVzT0.n
スレチですがRで性別の列に男性だったら0女性だったら1を当てはめたい時どうすればよいのですか?

325
デフォルトの名無しさん (ブーイモ MM3f-rd4d)[sage]   投稿日:2016/12/27 17:28:08  ID:xkC8dUFKM.n
ああん?Rのスレは別にあるぜ?何が目的よ?
ヒント
> x <- c("おす","メス","メス","おす")
> x[which(x == "おす")] <- 0
> x
[1] "0" "メス" "メス" "0"

326
デフォルトの名無しさん (ワッチョイ cfc2-97H3)[sage]   投稿日:2016/12/27 18:20:51  ID:5xUcSPz40.n
ラニマル文字を画面に出力したいのですが、
どうやればいいんですか?
OSはWindowsです。

327
デフォルトの名無しさん (ワッチョイ 0fc1-g1cW)[sage]   投稿日:2016/12/27 19:45:32  ID:QDHa6Y2K0.n
http://katahiromz.web.fc2.com/ranimal/index.html
JISやISOに登録されてるの?

328
デフォルトの名無しさん (アウアウカー Sa5f-6FRj)[sage]   投稿日:2016/12/27 20:46:01  ID:Hi68lG1ma.n
unicode使えばできる
https://ideone.com/o1UT3m

コマンドプロンプトに出力するなら設定変えなきゃいけないようだけど

329
デフォルトの名無しさん (ワッチョイ ef9f-h9rX)[sage]   投稿日:2016/12/27 20:51:52  ID:HWF0hvOB0.n
printf("ラ゚リ゚ル゚レ゚ロ゚");

330
デフォルトの名無しさん (ブーイモ MM3f-AvAH)[sage]   投稿日:2016/12/27 21:03:02  ID:Nm37omeWM.n
ら?K

331
デフォルトの名無しさん (ドコグロ MM3f-pGfi)[sage]   投稿日:2016/12/27 22:03:40  ID:G3hy1KS4M.n
>317
Aのみを抜き出したら、結果はAだろ。

332
デフォルトの名無しさん (ワッチョイ 7f5b-agOw)[sage]   投稿日:2016/12/27 22:35:32  ID:KYIhPrn60.n
BAKAYAROU

BKYROU

にするって事じゃねえのか。
コメント1件

333
デフォルトの名無しさん (ワッチョイ df17-g1cW)[sage]   投稿日:2016/12/27 22:53:06  ID:LWrh44QV0.n(4)
#include <stdio.h>

int main(int argc, char **argv) {
char src[10] = "BAKAYAROU";
char dst[10];
char *p_src, *p_dst;

p_src = src;
p_dst = dst;

while (*p_src != '\0') {
if (*p_src != 'A') {
*p_dst++ = *p_src;
}
p_src++;
}

puts(dst);

return 0;
}

334
デフォルトの名無しさん (ワッチョイ df17-g1cW)[sage]   投稿日:2016/12/27 22:57:33  ID:LWrh44QV0.n(4)
バグ修正
puts()の前に「*p_dst = '\0';」を入れて下さい。

335
デフォルトの名無しさん (ワッチョイ d37b-jVSv)[sage]   投稿日:2016/12/27 23:11:47  ID:dJApz5DA0.n
do-while使えばいいのに
最短の文字列は\0のみ、つまり1文字は必ずあるのだよ
当然終端されてない不完全な文字列は除く

336
デフォルトの名無しさん (ワッチョイ df17-g1cW)[sage]   投稿日:2016/12/27 23:41:53  ID:LWrh44QV0.n(4)
do-whileバージョンに改変
#include <stdio.h>

int main(int argc, char **argv) {
char src[10] = "BAKAYAROU";
char dst[10];
char *p_src, *p_dst;

p_src = src;
p_dst = dst;

do {
if (*p_src != 'A') {
*p_dst++ = *p_src;
}
} while (*p_src++ != '\0');

puts(dst);

return 0;
}

337
デフォルトの名無しさん (ドコグロ MM1f-BQyC)[sage]   投稿日:2016/12/28 07:17:18  ID:taDaNIJQM.n
>332
それなら 'A' を抜き取るとか取り去るって言ってほしいな

338
デフォルトの名無しさん (ワッチョイ 233b-pGfi)[sage]   投稿日:2016/12/28 08:09:06  ID:JN8lj6g40.n
ファイルに書き出したい!
別の文字列も試したい!

ってか、I/O は別にするんじゃないの?

339
デフォルトの名無しさん (ワッチョイ 374f-i5Qz)[sage]   投稿日:2016/12/28 08:27:04  ID:Dwxz1rif0.n
#include <stdio.h>
int main(int argc, char **argv) {
int ch;
while ((ch = getchar()) != EOF) { if (ch != 'A') putchar(ch); }
return 0;
}

ファイルけの入出力はリダイレクトで

340
デフォルトの名無しさん (ワッチョイ 7bdc-aVNS)[sage]   投稿日:2016/12/28 17:05:52  ID:Py23AHJA0.n
なんとなく宿題の手伝いをさせられてる気がするんだが。

341
デフォルトの名無しさん (ワッチョイ df17-g1cW)[sage]   投稿日:2016/12/28 22:26:32  ID:6NcUzOVy0.n
だね

342
デフォルトの名無しさん (ワッチョイ de5b-BD8y)[sage]   投稿日:2016/12/29 07:47:06  ID:agYvXZ6g0.n(2)
double power(double x,int n)
{
double tmp = 1.0 while(n-->0) tmp *=x; retrun tmp;}
初心者で申し訳ないのですが教科書に載ってるこれがなぜちゃんと2乗で帰ってくるのかわかりません。               これだとwhile文が一回分少なくなりません?              n=2,x=3だったらtmp=3でかえってくるきがするのですが・・・
コメント1件

343
デフォルトの名無しさん (ワッチョイ 2b19-Eko0)[sage]   投稿日:2016/12/29 07:54:55  ID:UuSU3MmP0.n
>while(n-->0)
比較後にnが-1されるから正しいよ。
コメント1件

344
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK5b-lF1b)[sage]   投稿日:2016/12/29 07:55:37  ID:4SBHJX0YK.n
>342
n--は、--nとは違って、nを返し、副作用としてnを1だけ減少させる。
n--の評価はnだが、式を評価した後に減算する。

345
デフォルトの名無しさん (ワッチョイ de5b-BD8y)[sage]   投稿日:2016/12/29 08:01:20  ID:agYvXZ6g0.n(2)
>343
あー前置後置ってヤツですね!
わかりましたありがとうございます

346
デフォルトの名無しさん (ワッチョイ af22-VbmQ)[sage]   投稿日:2016/12/29 08:16:33  ID:uZde1oJB0.n
普通にエラーにならないか?それとも新しい構文が出来たのかな?

347
デフォルトの名無しさん (スププ Sdaa-AfM2)[sage]   投稿日:2016/12/29 18:15:30  ID:McFsgUodd.n(2)
aはbの何%かを
全てint型のみ使って表現する方法を教えて下さい
もはや算数の質問かも
コメント1件

348
デフォルトの名無しさん (ワッチョイ 4613-Sa8B)[sage]   投稿日:2016/12/29 18:27:21  ID:jmDxh3ik0.n(2)
>347
(a * 100) / b
(a * 1000) / b
(a * 10000) / b
など好きな桁だけ
コメント1件

349
デフォルトの名無しさん (スププ Sdaa-AfM2)[sage]   投稿日:2016/12/29 18:38:33  ID:McFsgUodd.n(2)
>348
ありがとう
そうか先に乗算したらいいのか
先行き不安
コメント1件

350
デフォルトの名無しさん (ワッチョイ 4613-Sa8B)[sage]   投稿日:2016/12/29 18:57:20  ID:jmDxh3ik0.n(2)
>349
a が1000万とかおおきな数字だと桁あふれがあるかもしれないのは,要注意だよ

351
デフォルトの名無しさん (ワッチョイ 8a5b-N5TX)[sage]   投稿日:2016/12/29 19:35:14  ID:L0//uJAz0.n
アホみたいな質問したいなら初心者歓迎スレに行けよ。
んでそんなのに答えんなよ。

352
デフォルトの名無しさん (ワッチョイ 4ac2-iiJY)[sage]   投稿日:2016/12/29 21:35:34  ID:5z3LEr/z0.n
ferr()は使ってはいけないの?

353
デフォルトの名無しさん (ワッチョイ 0a17-4Ie9)[sage]   投稿日:2016/12/31 00:48:00  ID:d3m9z2RM0.n
何その関数?

354
デフォルトの名無しさん (ワッチョイ 8a3c-vnn7)[sage]   投稿日:2016/12/31 08:11:57  ID:RP5GqFRc0.n
ferror(), feof() あるいは独自関数?

355
デフォルトの名無しさん (ワッチョイ 8a5b-N5TX)[sage]   投稿日:2016/12/31 18:06:01  ID:1NxzN7Kr0.n
strlcpyを標準関数にするべきだな。
Cの偏屈委員会どもは死んでしまえ

356
デフォルトの名無しさん (アウアウカー Sa6b-vNeW)[sage]   投稿日:2016/12/31 20:17:13  ID:PqxctD7va.n
諦めてstrncpy_s使えよ

357
デフォルトの名無しさん (ワッチョイ 9ba1-pjmj)[]   投稿日:2017/01/06 16:56:13  ID:dF2ZN8YS0.n
マルチスレッド対応

358
デフォルトの名無しさん (ペラペラ SD3f-/Nb9)[]   投稿日:2017/01/06 21:52:48  ID:z/rf0TmkD.n
LTOオプションの感想をお聞かせください

359
デフォルトの名無しさん (ワッチョイ 5fab-HvS5)[]   投稿日:2017/01/07 17:26:15  ID:4AuueMBh0.n
malloc呼ばずにいきなりrealloc呼んでも確保できてるみたいなんだが
この書き方安全?
コメント2件

360
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK3f-6Slv)[sage]   投稿日:2017/01/07 17:46:45  ID:ogQHxHufK.n
>359
ANSI以降なら安全。

361
デフォルトの名無しさん (ワッチョイ ab7b-RU+3)[sage]   投稿日:2017/01/07 17:48:24  ID:2i81Owhj0.n
>359
第一引数に渡すポインタがNULLのとき"のみ"malloc()と同等の動作となる

362
デフォルトの名無しさん (ワッチョイ df17-pn3f)[sage]   投稿日:2017/01/08 01:19:27  ID:LDH1W2Fk0.n
reallocって要は中でmallocしてコピーしてfreeしてるだけでしょ
可読性に疑問符はあるけど安全か安全でないかといえば安全
コメント2件

363
デフォルトの名無しさん (ワッチョイ bb7b-XpjH)[sage]   投稿日:2017/01/08 02:12:57  ID:LTVOs92T0.n(2)
ちげーよ アホ

364
デフォルトの名無しさん (ワッチョイ 7b3c-HvS5)[sage]   投稿日:2017/01/08 03:30:55  ID:Nqw0FnK60.n(2)
(malocの実装によるけど)同じポインタを返すこともかるから そう単純な話でもない
コメント3件

365
デフォルトの名無しさん (ワッチョイ df3c-JQu6)[sage]   投稿日:2017/01/08 13:14:25  ID:C9GVPqMv0.n(4)
>364
結構単純な話みたいよ
http://www.beedub.com/Sprite093/src/lib/c/stdlib/realloc.c
サイズ拡張時の malloc( ) が NULL 返した時の処理がバグってるけど
コメント2件

366
デフォルトの名無しさん (アウアウカー Sa3f-KJco)[]   投稿日:2017/01/08 13:40:28  ID:l5OOm04ca.n(2)
>365
glibcのソースでも読めば?
単純な話じゃないから
コメント1件

367
デフォルトの名無しさん (ワッチョイ df3c-JQu6)[sage]   投稿日:2017/01/08 14:27:25  ID:C9GVPqMv0.n(4)
>366
ソースはごちゃごちゃしてるけどやってることはそう複雑じゃないでしょ
http://osxr.org:8080/glibc/source/malloc/malloc.c
コメント2件

368
デフォルトの名無しさん (アウアウカー Sa3f-KJco)[]   投稿日:2017/01/08 14:51:20  ID:l5OOm04ca.n(2)
>367
ここで言う単純な話って、>362だぞ
アルゴリズムが複雑か否かは問題にしていない

実際は後ろのchunkが空いているかとかで変わって、>364の通り同じアドレスが返ることもある
コメント1件

369
デフォルトの名無しさん (ワッチョイ df9f-c1lT)[sage]   投稿日:2017/01/08 14:56:25  ID:p/kSxu/t0.n(2)
>367
最悪の場合はmallocしてmemcpyしてfreeなのは当然として
glibcだと肝は_int_realloc()だけどパッと見ではさっぱり分からん
複雑じゃないならちょっと解説頼む
コメント1件

370
デフォルトの名無しさん (ワッチョイ df3c-JQu6)[sage]   投稿日:2017/01/08 15:04:37  ID:C9GVPqMv0.n(4)
>368
> アルゴリズムが複雑か否かは問題にしていない
いったい何を問題にしてるんだろう...

> 実際は後ろのchunkが空いているかとかで変わって、>364の通り同じアドレスが返ることもある
そりゃそう言う実装もあるわな
でもそれってそんな複雑な話か?
コメント1件

371
デフォルトの名無しさん (ワッチョイ 7b3c-HvS5)[sage]   投稿日:2017/01/08 15:07:42  ID:Nqw0FnK60.n(2)
極力 memcpy せずに済むように工夫してあるからこその realloc だと個人的には思っている
100% malloc memcpy free で代用できるのなら realloc は不要ってことに

372
デフォルトの名無しさん (アウアウカー Sa3f-KJco)[]   投稿日:2017/01/08 15:25:56  ID:4o94KzMpa.n
>370
>362の言う通りの実装かどうかの問題
少なくとも、glibcは違う
コメント1件

373
デフォルトの名無しさん (ワッチョイ df3c-JQu6)[sage]   投稿日:2017/01/08 15:32:07  ID:C9GVPqMv0.n(4)
>369
・要求サイズ小さければサイズ変更だけ
・そのまま拡張できるなら拡張する
・次のチャンクを使って拡張できるなら次のチャンクと統合
・だめなら領域確保してコピーして(元の領域を)解放

中学程度の英語力 + Google翻訳 でコメント拾い読みすればわかるとと思う

特殊ケースでコピーを避けたりサイズによってコピー方法変えたりしてるからちょっと読み辛い所はあるけど
コメント1件

374
デフォルトの名無しさん (ワッチョイ df9f-c1lT)[sage]   投稿日:2017/01/08 16:42:09  ID:p/kSxu/t0.n(2)
>373
俺も似たような見解だけど、それだと>365の指摘は見当違い(またはアスペ)で
>372が正しいようだ

375
デフォルトの名無しさん (ワッチョイ df5b-O2rp)[sage]   投稿日:2017/01/08 19:45:21  ID:M5lCKC460.n
realloc をいきなり呼ぶこと自体が間違いだろ。
システムコールを呼ぶんだから、OSに依存するだろう。

376
デフォルトの名無しさん (ワッチョイ bb7b-XpjH)[sage]   投稿日:2017/01/08 19:59:06  ID:LTVOs92T0.n(2)
↑↑↑↑↑↑
こいつ最高のアホ

377
デフォルトの名無しさん (ワッチョイ 5fc0-r3T7)[sage]   投稿日:2017/01/09 07:01:50  ID:OyKUGSou0.n
reallocでfreeされたら困る

378
デフォルトの名無しさん (ワッチョイ 1b79-IbiL)[sage]   投稿日:2017/01/09 19:20:06  ID:TY73MQez0.n(5)
すみません麻雀計算プログラムを作ってるんですが(C言語のサイトのを参考に)
C言語をJavaに置き換えたいのですが

●C言語
kiriwake[p_kiriwake]=TOITU;kiriwake[p_kiriwake+1] =i,p_kiriwake+=2;

これをJavaに書き換えると次のような感じでいいのですか?
セミコロンとカンマの使い分けの意味がわからんのですが、、、
●Java
kiriwake[p_kiriwake]=Mentsu.TOITU.getInt();
kiriwake[p_kiriwake+1] =i;
p_kiriwake+=2;

あと、C言語で !tehai[i] みたいな配列の要素否定(配列はint型)
これって 配列の要素の値が 0だったらtrueって意味でよいのでしょうか?
コメント1件

379
デフォルトの名無しさん (ブーイモ MMff-aasi)[sage]   投稿日:2017/01/09 19:31:26  ID:ZrysDj50M.n
!0がtrue
コメント1件

380
デフォルトの名無しさん (ワッチョイ 1b79-IbiL)[sage]   投稿日:2017/01/09 19:37:45  ID:TY73MQez0.n(5)
>379
ありがとうございます!

int tehai[1]={0}だったら
!tehai[1] はtrueってことでよいですよね?

すみません、カンマとセミコロンの使い分けについても知りたいのですが。。。

381
380 (ワッチョイ 1b79-IbiL)[sage]   投稿日:2017/01/09 19:41:24  ID:TY73MQez0.n(5)
もとい

int tehai[1]={0}だったら
!tehai[0] はtrueってことでよいですよね?

382
デフォルトの名無しさん (ワッチョイ 7b3c-HvS5)[sage]   投稿日:2017/01/09 19:44:30  ID:B6Fh/YAP0.n(2)
その文だったら カンマもセミコロンも変わらない
むしろ何でカンマで記述したんだろう?と疑問に思うところ
コメント1件

383
デフォルトの名無しさん (ワッチョイ 1b79-IbiL)[sage]   投稿日:2017/01/09 19:49:25  ID:TY73MQez0.n(5)
>382
ありがとうございます!!!
Javaしかやったことなくて
疑問に思ってました。。。。

参考にさせてもらってるので文句いえないんですが。

384
デフォルトの名無しさん (ワッチョイ 7b3c-HvS5)[sage]   投稿日:2017/01/09 19:52:46  ID:B6Fh/YAP0.n(2)
アルゴリズム追えてるならまだしも
片側の言語しかやってなくて、別言語を移植するのはうまい手ではない とだけ
コメント1件

385
デフォルトの名無しさん (ワッチョイ 1b79-IbiL)[sage]   投稿日:2017/01/09 19:53:41  ID:TY73MQez0.n(5)
>384
アルゴリズムおえてないっす。。。。(´・ω・`)ショボーン

386
デフォルトの名無しさん (ワッチョイ 1f3d-IbiL)[sage]   投稿日:2017/01/09 23:32:02  ID:3plbifW70.n
>378
p_kiriwakeとかで検索すると、すでにjava用があるみたいだが(完成しているかどうかは知らんが)、
そっちは調査済み?
コメント1件

387
デフォルトの名無しさん (ワッチョイ 1b79-IbiL)[sage]   投稿日:2017/01/10 01:21:20  ID:TQQvtKe/0.n
>386
ついさっき気づきました。
ちゃんと見てなくてすみません><

ありがとうございます!

388
デフォルトの名無しさん (ワッチョイ cf48-FA8G)[]   投稿日:2017/01/11 00:33:31  ID:yCTW6NdS0.n(4)
fprintfでunicod出力できますか?
コメント1件

389
デフォルトの名無しさん (ワッチョイ cf48-FA8G)[]   投稿日:2017/01/11 00:43:26  ID:yCTW6NdS0.n(4)
環境はwindowsのgccです

390
デフォルトの名無しさん (ワッチョイ cf48-FA8G)[]   投稿日:2017/01/11 02:07:55  ID:yCTW6NdS0.n(4)
ICUで変換しなきゃなのかな?
sjisのテキストファイルfgets
unicodeのテキストファイルfgets
両方の文字列結合してunicodeのテキストへ出力したいだけなんだけど、なかなかハードル高そう
コメント1件

391
デフォルトの名無しさん (ワッチョイ cf48-FA8G)[]   投稿日:2017/01/11 02:28:22  ID:yCTW6NdS0.n(4)
あ、iconvってのがあるのね
こっちのほうが簡単かな?
明日試してみよ

392
デフォルトの名無しさん (ワッチョイ 0f7b-MPfw)[sage]   投稿日:2017/01/11 04:59:56  ID:s2WqCPuy0.n
Rubyでは、Iconv は標準ライブラリから削除された

普通はそのまま、多言語対応の、String#encode を使うけど、
日本語なら、NKF か、NKFのラッパーである、Kconv を使うこともある

393
デフォルトの名無しさん (ワッチョイ df17-pn3f)[sage]   投稿日:2017/01/11 06:34:38  ID:9AYGk8zp0.n
>388
unicodeがUTF-16という意味ならば、fprintf()ではなくfwprintf()を使う必要がある。
非SJIS文字をコンソールウィンドウに表示したいという意味ならば、SetConsoleOutputCP()を使う必要がある。
コメント1件

394
デフォルトの名無しさん (ワッチョイ bb7b-XpjH)[sage]   投稿日:2017/01/11 08:41:45  ID:7JGhXUMg0.n
C言語スレで聞かれてもいないRubyの話とか
Ruby厨ってゴキブリのようにどこにでも現れるな 本当にウザい

395
デフォルトの名無しさん (JP 0Hff-HvS5)[sage]   投稿日:2017/01/11 09:45:29  ID:Kc9qpi7VH.n
noranを取り出すプログラム作りたいけど、どうすればいい?

入力例
ouninnoran
出力例
ounin
コメント2件

396
デフォルトの名無しさん (ブーイモ MMff-HTrg)[sage]   投稿日:2017/01/11 10:50:42  ID:YIxHFj66M.n
>395
それは、取り出すじゃなくて、取り除くだろ

397
デフォルトの名無しさん (JP 0H3f-HCiS)[sage]   投稿日:2017/01/11 11:43:13  ID:9NELrAZMH.n(2)
>395
まず確認として、逆に付け足す方はできるのん?
それより数段難しいけど

398
デフォルトの名無しさん (ワッチョイ ab4e-JoNk)[sage]   投稿日:2017/01/11 12:13:12  ID:TbwwsfFk0.n
strstrでnoranのポインタ見つけたらその一個前までがounin

399
デフォルトの名無しさん (JP 0Hff-HvS5)[sage]   投稿日:2017/01/11 12:21:43  ID:SaAlt4gYH.n
scanf("%s %c", &name,&s);

if(!strcmp("M", s))

printf("Hi, Mr. %s", name);

else
printf("Hi, Ms. %s", name);

どこが間違ってる?
コメント2件

400
デフォルトの名無しさん (ワッチョイ 0f4f-HvS5)[sage]   投稿日:2017/01/11 12:31:53  ID:BpdW2SgI0.n
>399 つっこみどころ満載やね
s の型は
char ならば strcmp で比較することがおかしい
char の配列ならば %c で受けるのがおかしい

そして scanf の第二引数は &name ではなく name

401
デフォルトの名無しさん (JP 0H3f-HCiS)[sage]   投稿日:2017/01/11 14:00:06  ID:9NELrAZMH.n(2)
>399
name, s の宣言をどこでどうやってるかまず明示

402
デフォルトの名無しさん (ワントンキン MMff-FA8G)[]   投稿日:2017/01/11 16:57:22  ID:/Ass4XCcM.n
>393
ありがと
使いたいのはutf8でした
もう少し調べてみます

403
デフォルトの名無しさん (ワッチョイ c648-3wWY)[]   投稿日:2017/01/12 13:25:08  ID:N1lQGCCN0.n(8)
入力ファイルAとBを事前にutf8で用意
fopenでABをオープン
_wfopenのパラメータにUTF-8を指定してファイルCをオープンしてすぐクローズ(空ファイル作成)
fopenでCをオープン
fgetで読んだABの中身をfprintfでCに出力
これでやりたかったutf8出力はできたけど
無理矢理すぎて残念な感じ
こんなソース人には見せたくないなw
コメント2件

404
デフォルトの名無しさん (ワッチョイ c648-3wWY)[]   投稿日:2017/01/12 13:29:55  ID:N1lQGCCN0.n(8)
カンマ区切りのcsvのn番目の項目だけをutf8ファイルへ出力するだけなので、結果オーライだろうけどデータの中身が日本語でも対応できてる

405
デフォルトの名無しさん (JP 0H8b-CSNb)[sage]   投稿日:2017/01/12 13:39:48  ID:xegpw56ZH.n
ライブラリに押し込んで隠蔽して
もっともらしくドキュメント書けばおーけーよ

406
デフォルトの名無しさん (ワッチョイ c648-3wWY)[]   投稿日:2017/01/12 13:44:40  ID:N1lQGCCN0.n(8)
まじかw

407
デフォルトの名無しさん (JP 0Hee-0Plu)[sage]   投稿日:2017/01/12 15:04:44  ID:Yxj3ejPrH.n
>403
utf8を読んでutf8で書くだけなら_wfopenとか必要なくね

普通にfopenだけで動かんの?

408
デフォルトの名無しさん (ワッチョイ c648-3wWY)[]   投稿日:2017/01/12 16:45:42  ID:N1lQGCCN0.n(8)
普通にfopenしたら新規ファイルがsjisになっちゃうのよ
コメント1件

409
デフォルトの名無しさん (ワッチョイ ff53-BvkP)[sage]   投稿日:2017/01/12 17:44:41  ID:TSKFHmJO0.n
>408
バイナリー扱いでファイルcに出力できないのはbom関係から?

410
デフォルトの名無しさん (ドコグロ MM0a-f8hU)[sage]   投稿日:2017/01/12 18:01:15  ID:+/2k3owKM.n
UTF8にしたいのはファイル名?

411
デフォルトの名無しさん (ワッチョイ 2f3c-dHfL)[sage]   投稿日:2017/01/12 18:15:42  ID:wUE0uj5c0.n
>390 では sjisのファイルと unicode のファイルを unicode として連結出力したい
>403 では utf8のファイルA と utf8のファイルB を utf8のまま連結出力したい

412
デフォルトの名無しさん (ワッチョイ c648-3wWY)[]   投稿日:2017/01/12 18:48:56  ID:N1lQGCCN0.n(8)
ファイル名じゃなくて、中身のコードをutf8にしたい

413
デフォルトの名無しさん (アウアウカー Sa5f-lBuY)[sage]   投稿日:2017/01/12 18:51:37  ID:yXBvqXfaa.n
文字コード変換ならwindowsならMultiToWide、WideToMultiみたいなAPIあったろ
それでsjis→ucs2?→utf8で変換出来るでしょ

コードをutf8にしたいなら、エディタで保存するときに文字コード選ぶか、c11なら文字列リテラルにu8つける
コメント1件

414
デフォルトの名無しさん (ワッチョイ c648-3wWY)[]   投稿日:2017/01/12 18:52:20  ID:N1lQGCCN0.n(8)
あー、まずバイナリでBOM出力したらよかったのかもね

415
デフォルトの名無しさん (ワッチョイ c648-3wWY)[]   投稿日:2017/01/12 18:56:15  ID:N1lQGCCN0.n(8)
>413
二段階で変換するのか
ありがとー

416
デフォルトの名無しさん (ワッチョイ c648-3wWY)[]   投稿日:2017/01/12 18:58:51  ID:N1lQGCCN0.n(8)
MultiByteToWideChar
WideCharToMulteByte
でいけるみたいね
ちょっと試してみる

417
デフォルトの名無しさん (JP 0Hf2-dHfL)[sage]   投稿日:2017/01/13 10:59:17  ID:A7lO7PxRH.n
int main(void){

char s;
scanf("%s", &s);
printf("Best in %s", s);
return 0;

}
ド素人です
どこが間違ってるの?
コメント2件

418
デフォルトの名無しさん (ワッチョイ 4f42-q48i)[sage]   投稿日:2017/01/13 11:05:29  ID:XrLKGNVx0.n
>417
>char s;

この辺

419
デフォルトの名無しさん (ドコグロ MM0a-xe6k)[sage]   投稿日:2017/01/13 11:06:07  ID:zsb+1uUaM.n
include してないから?

420
デフォルトの名無しさん (ワッチョイ c3dc-0v0L)[sage]   投稿日:2017/01/13 11:18:43  ID:Aw2MqPlk0.n(2)
>417 とりあえず...
標準入力から1文字だけ取って表示したいなら、2か所の %s は %c と書く。

標準入力から単語を1個取って表示したいなら
char s; → char s[1024];
scanf("%s", &s); → scanf("%s", s);


んで、プログラムを書いたときに期待した動作と、
実行したときの実際の動作の食い違いを報告すれば
次のヒントを示せると思うよ。
コメント1件

421
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/13 11:21:49  ID:76Aeg2JY0.n(3)
>420の言う事は信用しないように
> char s; → char s[1024];
特にこの辺
コメント2件

422
デフォルトの名無しさん (ワッチョイ b25b-QKPs)[sage]   投稿日:2017/01/13 12:29:47  ID:KHQIWhB30.n
批判するならちゃんと最後まで説明しろ

423
デフォルトの名無しさん (JP 0Hff-ws9s)[sage]   投稿日:2017/01/13 12:32:11  ID:TdrVgO0QH.n
だな
>421は害悪

424
420 (ワッチョイ c3dc-0v0L)[sage]   投稿日:2017/01/13 16:45:39  ID:Aw2MqPlk0.n(2)
確かにchar配列の大きさ決め打ちは良くないから >421 の指摘はもっともなんだが、
この段階でscanfの読み取り量の上限指定書式とか説明しきれないじゃない。

そういう意味での「とりあえず...」という前置き。
もちろん完璧な解説をしてくれるなら歓迎するよ。

425
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/13 17:35:31  ID:76Aeg2JY0.n(3)
scanfで%sを使って文字列を読み込むとこは禁じ手
%1023s これを超初心者に教えるのは面倒

従ってscanfで文字列読み込むな!
が正しい解答

426
デフォルトの名無しさん (ワンミングク MMe2-3wWY)[]   投稿日:2017/01/13 17:45:39  ID:5IEqjpCWM.n
実際scanf使うことはないけど
勉強中はべつにいいだろ
最初はこかして覚えるもんだ
コメント2件

427
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/13 17:54:35  ID:76Aeg2JY0.n(3)
>426
1000回死ね

428
デフォルトの名無しさん (ワッチョイ 677b-j+ca)[sage]   投稿日:2017/01/13 18:01:09  ID:530oYhD80.n(2)
むしろ初心者のうちに身を持って覚えておかないと将来困る
最初から使うなというだけでは勉強にならないだろ

429
デフォルトの名無しさん (ワンミングク MMe2-dqLr)[]   投稿日:2017/01/13 18:07:58  ID:kKg87s4oM.n(2)
>426
それで、char s[1024]; にしたらこけて覚えるか?
覚えないだろ、勉強中に1024以上入力する事なんてないだろうから。
そうやって「自分の動かす範囲では動いてる」で進むのが良いとは思わんね

430
デフォルトの名無しさん (ワッチョイ 1f85-y9rD)[sage]   投稿日:2017/01/13 18:12:45  ID:hu5eqRYQ0.n
最初から fgets() に絞っておく、という教科書がそろそろほしいものだ
C の標準関数は洗練されていない

431
デフォルトの名無しさん (ワッチョイ 677b-j+ca)[sage]   投稿日:2017/01/13 18:20:09  ID:530oYhD80.n(2)
こけるかどうかよりもバッファの配列の存在を意識することが大切
実際にscanfで文字列を扱う経験のなかから危険性も理解できるようになる(はず)
コメント1件

432
デフォルトの名無しさん (ワンミングク MMe2-dqLr)[]   投稿日:2017/01/13 18:28:57  ID:kKg87s4oM.n(2)
>431
知らないとバッファーに収まるように打ち切って格納してくれると思ってしまう可能性もあるだろ?(C++では実際そういう風に実装可能だし)

scanfで文字列取るのなんて実行時まで自分で面倒見ない限りどうやっても安全に使えないんだからその方法を教えること自体悪

433
デフォルトの名無しさん (ワッチョイ 2f3c-dHfL)[sage]   投稿日:2017/01/13 18:35:16  ID:VUlDSfWl0.n
余所言語を経験してて、この言語については初心者なのと
最初のプログラミング言語がこれでの初心者
どっちが取り扱うにしろ文字列周辺は面倒だな

434
デフォルトの名無しさん (ワッチョイ f37b-aKms)[sage]   投稿日:2017/01/13 21:03:22  ID:wdtBjSeo0.n
入力ストリームの食べ残しで頭悩ませる初心者が後を絶たないのはカビ臭い本のせいだな
printf()の対だから…なんて安易な考えでscanf()を使っているとしか思えないが
scanf系は元々csvとか帳簿みたいな固定長あるいは固定フォーマットのレコードを処理するために用意されたものだから
そういう「入力が既知のケース」ではとても便利なのでガンガン使っていいけど
何が来るかわからない一方通行の入力ストリームに対してはあまりに使いにくい
変換失敗しただけでも食べ残して次の入力になっちゃうから行儀が悪い
だから改行もちゃんと食べきるfgets()のほうがやり直しも含めて簡単なんだよな

435
デフォルトの名無しさん (ワッチョイ 7e13-dHfL)[sage]   投稿日:2017/01/13 21:10:12  ID:nYJUER3p0.n
そうそう,fgets() だけでいい

436
デフォルトの名無しさん (ワッチョイ 12cb-q48i)[sage]   投稿日:2017/01/13 21:44:57  ID:3pfgPUNA0.n
scanfの使えなさを実感させてた上で「使うな!」って言わないと。

437
デフォルトの名無しさん (JP 0H8b-CSNb)[sage]   投稿日:2017/01/14 14:22:47  ID:Xw0trSpZH.n(2)
printf とか scanf とか自分で間違いを自覚できずに迷路にハマるやつは
初心者に使わせるべきではない

438
デフォルトの名無しさん (ワッチョイ 4f42-q48i)[sage]   投稿日:2017/01/14 14:25:06  ID:NOILgRtm0.n
「使うな」じゃなく、安全に使えるものを提供してやれよ

439
デフォルトの名無しさん (ワッチョイ 4f19-YL17)[sage]   投稿日:2017/01/14 14:57:58  ID:YpbmANTj0.n
問題が生じる実例を出して「だから使ってはいけない」って言えよ。
どこぞのパヨクじゃあるまいし。
コメント2件

440
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/14 15:05:14  ID:8QfSwFFH0.n(2)
>439
やってはいけない事を形式的に理解する
やってはいけない理由を理解する

前者の方が圧倒的に簡単でオレはそれをした
後者は必要だと思ってるお前がやれ

441
デフォルトの名無しさん (ワッチョイ 12cb-q48i)[sage]   投稿日:2017/01/14 19:18:27  ID:FAvcV6GF0.n
2chで質問/反論するなんてドMかと。

442
デフォルトの名無しさん (ワッチョイ b25b-QKPs)[sage]   投稿日:2017/01/14 21:25:43  ID:aI5T4zHh0.n
C言語は使い手が間違った使い方をしないのが前提だからな。
scanfも間違った使い方をしなければ良いだけだ。

Cに関しては間違うやつが悪い。

443
デフォルトの名無しさん (ワッチョイ 1f76-L1LG)[]   投稿日:2017/01/14 22:06:39  ID:nnhGfmGJ0.n
programmers know what they are doing
いい言葉だ

444
デフォルトの名無しさん (JP 0H8b-CSNb)[sage]   投稿日:2017/01/14 22:47:19  ID:Xw0trSpZH.n(2)
間違うやつ=初心者 に使わせることそれ自体が間違い

445
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/14 22:59:33  ID:8QfSwFFH0.n(2)
間違った使い方しか出来ないgetsなんてのもある

口だけパヨクの>439は逃亡か
コメント3件

446
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/15 13:44:50  ID:HYjV15pa0.n(12)
>445
> 間違った使い方しか出来ないgetsなんてのもある
意味わからん
コメント1件

447
デフォルトの名無しさん (ワッチョイ 4f19-YL17)[sage]   投稿日:2017/01/15 14:16:13  ID:2Jcq20M50.n
宗教戦争勃発!

448
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 15:55:29  ID:T6BZe6fz0.n(14)
>446
頭悪いんじゃ無い?
コメント1件

449
デフォルトの名無しさん (ワッチョイ 3217-q48i)[sage]   投稿日:2017/01/15 16:04:27  ID:6p/gvNbZ0.n
A. 頭悪いヤツが悪い
B. 頭悪いヤツでも使えるようにしないヤツが悪い

いかにして上記のAとBで相反する主張を巧みに使いこなし他人に責任転嫁するかってのが処世術。

450
デフォルトの名無しさん (ドコグロ MM3e-lGK7)[sage]   投稿日:2017/01/15 16:23:27  ID:YYhy4dGbM.n
>448
こういう論争はだいたい言い切る奴が頭悪いって結論だが w
コメント2件

451
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 16:43:00  ID:T6BZe6fz0.n(14)
>450
たった一行の
「間違った使い方しか出来ないgetsなんてのもある」
の意味がわからないのは頭が悪い可能性がとてつもなく高い
例外として日本語が不自由
コメント1件

452
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/15 17:14:18  ID:HYjV15pa0.n(12)
>451
> 「間違った使い方しか出来ないgetsなんてのもある」
> の意味がわからない
マジで言ってるなら相当頭悪いわ w
どうせ入力が溢れることを防げないとか思ってるんだろうけど常に防げないと思ってるなら経験値が無さすぎ
コメント2件

453
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 17:21:42  ID:T6BZe6fz0.n(14)
>452
頭悪い本人? 横レスなら引っ込んでろ
コメント1件

454
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 17:23:45  ID:OwCHVx6x0.n(14)
>452
経験値があったら安全に使えるのか。
凄いねそのお前の経験値が他の人にもあったら規格から削除されることもなかったのにね。
コメント1件

455
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/15 17:44:54  ID:HYjV15pa0.n(12)
>453
横レス?
ID も見てないアホですか? w

>454
> 経験値があったら安全に使えるのか。
使えるだろ
使えない理由がないわ

> 凄いねそのお前の経験値が他の人にもあったら規格から削除されることもなかったのにね。
バカなの?
使える機会が少ないとか >445 みたいなアホが多いとかで廃止されてるだけだろ
コメント1件

456
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 18:08:37  ID:T6BZe6fz0.n(14)
>455
それじゃ、意味わからないおバカさんに解説してあげよう

「間違った使い方しか出来ないgetsなんてのもある」

「getsには正しい使い方は存在しない」って意味だよ
コメント1件

457
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/15 18:39:14  ID:HYjV15pa0.n(12)
>456
ぼくはまちがったつかいたかしかしりません
の間違いだろ w
一行の長さが保証されてるならなんの問題もない

458
デフォルトの名無しさん (ワッチョイ b217-sWU2)[sage]   投稿日:2017/01/15 18:40:53  ID:egsq+OIB0.n
まともな頭があると思ってるならスレタイを何度か読み直してみてくれよ。

459
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 18:46:49  ID:T6BZe6fz0.n(14)
「間違った使い方しか出来ないgetsなんてのもある」

「getsには正しい使い方は存在しない」って意味だって言う事がわかったかな?

これがわからないと言うから、頭悪いと言ったんだよ

460
デフォルトの名無しさん (ワッチョイ f619-vSov)[sage]   投稿日:2017/01/15 19:14:33  ID:R1qhOvTe0.n
ゲッツ!
コメント1件

461
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 19:23:11  ID:OwCHVx6x0.n(14)
標準入力をどうやって一行の長さを保証すんだよ
このプログラムへの入力は一行にN文字までにしてね!
ってどこかに書いておくのか。アホらしい。
そんな設計が正しいと信じてるならお前にとってはそれが正しい使い方なんだろうね。
コメント2件

462
デフォルトの名無しさん (ワッチョイ b25b-QKPs)[sage]   投稿日:2017/01/15 19:32:26  ID:GuIWlHA40.n(6)
作り手も使い手も間違わないって考えで作られたのがC言語だから。

初心者が使う言語ではないし、初心者に使わせる言語でも無い。
プロのプログラマーが作って、プロのオペレーターが使うのを想定してる。

間違うのが怖いならベーシックでもやってろよ
コメント1件

463
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 19:34:16  ID:OwCHVx6x0.n(14)
因みに俺の思う正しい設計の一つ(ケースに依るので)は想定以上のサイズのデータが入力された場合エラーメッセージを吐いて死ぬだ。

断じて動いてるように見えるけど実は結果が壊れてるとかではない。

464
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 19:42:52  ID:T6BZe6fz0.n(14)
>450
ほら、トンデモない馬鹿だったろ

> 一行の長さが保証されてるならなんの問題もない

465
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 19:45:03  ID:OwCHVx6x0.n(14)
>462
明らかに使い方を間違えていると解るのであれば、正しくエラーメッセージを出力するように実装するのがプロのプログラマ
結果が予測できないような実装になるのは未熟すぎる。
getsを使うようなプログラマにプロの仕事は出来ないよ
コメント2件

466
デフォルトの名無しさん (ワッチョイ 4f42-q48i)[sage]   投稿日:2017/01/15 19:45:49  ID:YV5ExKYS0.n(5)
文字数制限を設計時にすれば間違いとは言えない、気がする
「暴走する?仕様です笑」

467
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 19:47:26  ID:T6BZe6fz0.n(14)
>461
行の長さをチェックしつつ全部読んで、中間ファイルに書き出し、それをfreopeして大爆笑
コメント1件

468
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/15 19:50:33  ID:HYjV15pa0.n(12)
>461
はあ?
仕様って知ってるか? w
自分が出力したデータを読むとかも想定できないのかよ
コメント1件

469
デフォルトの名無しさん (ワッチョイ b25b-QKPs)[sage]   投稿日:2017/01/15 19:52:34  ID:GuIWlHA40.n(6)
>465
時代が違うし、用途が違う。
getsでも十分なバッファを用意しておけば良いだけの事だろう。

たいてい特定のコマンドとかしか入力しないんだから、
何文字以上入力するなって言っておけば良いだけの事。

たぶん君は若いんだよ。
古い人間はプログラム側を信用するのも危険って知ってる
コメント1件

470
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/15 19:57:58  ID:HYjV15pa0.n(12)
>465
バカはこれだから w
仕様通りの動作をするように組むのがプロだよ
そもそも常にメッセージ出せるわけでもないし
コメント1件

471
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 19:58:19  ID:T6BZe6fz0.n(14)
>468
ぷぷぷ
そのような頭悪い強結合の設計は「正しく無い」ので、その設計に基づいたgetsの使い方もまた正しく無い
コメント1件

472
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/15 19:59:08  ID:HYjV15pa0.n(12)
>467
いちいちバカを晒さんでいいぞ

473
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 20:00:39  ID:OwCHVx6x0.n(14)
>469
そのわざわざ信用出来ないプログラムを書くのが

474
デフォルトの名無しさん (ワッチョイ 329f-3X21)[sage]   投稿日:2017/01/15 20:01:45  ID:Q6BJ1v/20.n(2)
getsを使うにはきちんとメモリ管理したり例外トラップしたりなにかと面倒だ
でも 「getsには正しい使い方は存在しない」 は言い過ぎだな
コメント1件

475
デフォルトの名無しさん (ブーイモ MMd2-yP9u)[sage]   投稿日:2017/01/15 20:02:02  ID:Hg/wNX2QM.n
c11で削除されたんだしもういいだろ

476
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 20:02:12  ID:OwCHVx6x0.n(14)
>470
予測不可能な動作をするより前に死ぬ事が大事って事が解らんのかね?
コメント1件

477
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/15 20:03:43  ID:HYjV15pa0.n(12)
>471
> そのような頭悪い強結合の設計は「正しく無い」ので、その設計に基づいたgetsの使い方もまた正しく無い
オレオレ定義乙 w
コメント1件

478
デフォルトの名無しさん (ワッチョイ b217-OYug)[sage]   投稿日:2017/01/15 20:05:28  ID:GJnk2lJp0.n
この関数の作者が単に思慮が足りない馬鹿だったのかマッドサイエンティストだったのか気になるね
コメント1件

479
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 20:09:08  ID:OwCHVx6x0.n(14)
>478
当時はプログラムを作成するのも実行するのも限られた人のみでセキュアコーディングなんて考えかたはかけらも存在しなかったから仕方ない。

でも今の時代に当時のままの感覚で語るのはただの老害

480
デフォルトの名無しさん (ワッチョイ 4f42-q48i)[sage]   投稿日:2017/01/15 20:12:35  ID:YV5ExKYS0.n(5)
そういう人にはCは向かない

481
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/15 20:16:05  ID:HYjV15pa0.n(12)
>476
で?
仕様外の動作においてなにが大事かどうかはケースバイケース
常に
> 明らかに使い方を間違えていると解るのであれば、正しくエラーメッセージを出力
が正しいと思ってるならそれこそ経験値が無さすぎ
コメント1件

482
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 20:20:49  ID:T6BZe6fz0.n(14)
>477
今度は強結合がわからないらしい 大爆笑
コメント1件

483
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 20:23:07  ID:T6BZe6fz0.n(14)
>474
それを否定したけりゃ、正しい使い方を例示すれば良い
ID:HYjV15pa0のようにオツムの程度を晒す事になるが
コメント1件

484
デフォルトの名無しさん (ワッチョイ 72c1-SqzF)[sage]   投稿日:2017/01/15 20:23:33  ID:p20o/xdu0.n
勢いwwww

485
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 20:23:44  ID:OwCHVx6x0.n(14)
>481
エラー発生時に終了するより未定義動作につっこむ方が大事だと?
コメント2件

486
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 20:24:25  ID:T6BZe6fz0.n(14)
>485
ID:HYjV15pa0はそうらしい w

487
デフォルトの名無しさん (ワッチョイ 4f42-q48i)[sage]   投稿日:2017/01/15 20:24:39  ID:YV5ExKYS0.n(5)
もう、ネタでやっているとしか思えない

488
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 20:42:59  ID:T6BZe6fz0.n(14)
ID:HYjV15pa0のためにgetsの正しい使い方を考えてあげるスレでも立てるか

489
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/15 20:43:41  ID:HYjV15pa0.n(12)
>482
> 今度は強結合がわからないらしい 大爆笑
勝手な解釈で勝利宣言 w
強結合だから正しくない
って言うのがオレオレ定義って言ってるんだが

>483
入力の仕様を明示すればいいって書いてあるが?

>485-486
ケースバイケースの意味がわからんのか?
コメント1件

490
デフォルトの名無しさん (ワッチョイ b25b-QKPs)[sage]   投稿日:2017/01/15 20:45:30  ID:GuIWlHA40.n(6)
コンソールから入力できる1行の最大文字数なんて上限があるだろ。

今ならメモリなんか気にする必要ないんだから、
getsのバッファでそれ以上を用意しておけば良いだけだろう。
コメント1件

491
デフォルトの名無しさん (ワッチョイ b25b-QKPs)[sage]   投稿日:2017/01/15 20:47:20  ID:GuIWlHA40.n(6)
Cはどういう使われ方をされるかわからないような
インターフェース部分に用いるべき言語では無いぞ。

492
デフォルトの名無しさん (ワッチョイ 7e13-dHfL)[sage]   投稿日:2017/01/15 20:53:50  ID:Z39GcWi70.n
fgets() 推奨,で終わりじゃなかったのか‥

493
デフォルトの名無しさん (ワッチョイ 6719-vSov)[sage]   投稿日:2017/01/15 20:54:12  ID:qtyi6+tl0.n(6)
自分しか使わないならそれでいいだろ

494
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 21:04:30  ID:OwCHVx6x0.n(14)
>489
じゃあ未定義動作の方が大事っていうケース挙げてみてよ

>490
古い人間ならパイプぐらい知ってるよね?
コメント1件

495
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 21:09:13  ID:OwCHVx6x0.n(14)
別に書き捨てるプログラム前提だからとエラーチェックもせずに怠惰に書くことは自体は否定しないけど、それを正しいと言い張るのは違うと思うな
コメント1件

496
デフォルトの名無しさん (ワッチョイ 6719-vSov)[sage]   投稿日:2017/01/15 21:13:49  ID:qtyi6+tl0.n(6)
間違った使い方が出来ないようにばかりすると
人はどんなものも間違った使い方ができないと思い込み
間違った使い方を出来てしまうものを間違って使い
命を落とすこともあるだろうから
間違った使い方ができるものも必要だよ
コメント1件

497
デフォルトの名無しさん (ワッチョイ b25b-QKPs)[sage]   投稿日:2017/01/15 21:14:44  ID:GuIWlHA40.n(6)
バッファオーバーフローが怖いなら、Cを使うべきでは無いよ。
お茶をこぼすのが怖いなら、キーボードを使うべきでは無い。

潔癖すぎると生産できんがな。
getsを使ったプログラムなんてくさるほど運用されとるがな。
コメント1件

498
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 21:16:00  ID:OwCHVx6x0.n(14)
>496
間違った使い方しか出来ないものの話してるんですけど。

499
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 21:20:38  ID:OwCHVx6x0.n(14)
>497
セキュアコーディング全否定かよ。
お前がやろうとしないだけ(もしくは出来ないだけ)でまともなC言語使い未定義動作に突っ込まないように努力してんの。

この発言は老害としか言えねえな
仕事でC言語書いてるなら脆弱性発生器さんとも呼べるか

500
デフォルトの名無しさん (ワッチョイ 6719-vSov)[sage]   投稿日:2017/01/15 21:24:08  ID:qtyi6+tl0.n(6)
安全が当たり前になりすぎて少しの間違った使い方にクレームを言い出す人が増えすぎたな
コメント1件

501
デフォルトの名無しさん (ワッチョイ b25b-QKPs)[sage]   投稿日:2017/01/15 21:25:56  ID:GuIWlHA40.n(6)
「getsが間違った使い方しかできない」 ってのが間違いって言ってんだ。

オペレーターが注意する事でgetsのバッファオーバフローが防げるならそれで良いだろう。

何度も言うが、Cはそういう前提で開発された語だ。
プログラマーやオペレーターが間違ったら、基本的にそれを防げない言語なんだよ。

セキュアコーティングを目指すならCを用いるべきではない。
それこそ根本的に間違いだろう。

502
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 21:26:45  ID:OwCHVx6x0.n(14)
>500
そりゃ、間違ってることを正しいと主張されたら間違ってる事が広まって欲しくないからクレームだすよね。

503
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 21:29:23  ID:T6BZe6fz0.n(14)

504
デフォルトの名無しさん (ワッチョイ 6719-vSov)[sage]   投稿日:2017/01/15 21:32:21  ID:qtyi6+tl0.n(6)
ハッカーとか危険な男は使う人のことを考えた安心安全なコードを書かないと思うな
C言語はハッカーが使う言語だからね
コメント1件

505
デフォルトの名無しさん (ワッチョイ 677b-dqLr)[]   投稿日:2017/01/15 21:37:56  ID:OwCHVx6x0.n(14)
>504
Linuxがそんな考えで実装されてたら誰も使ってねえよ


506
デフォルトの名無しさん (ワッチョイ 6719-vSov)[sage]   投稿日:2017/01/15 21:45:37  ID:qtyi6+tl0.n(6)
使う人がプログラムを選ぶのではなくプログラムが使う人を選ぶ
それがハッカーの書くプログラムだ

507
デフォルトの名無しさん (ワッチョイ 4f42-q48i)[sage]   投稿日:2017/01/15 21:49:39  ID:YV5ExKYS0.n(5)
C言語使えるだけではハッカーとは言えないな
PHPでもSQLでもシェルスクリプトでも果ては画像ファイルも使うから

508
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/15 21:55:03  ID:HYjV15pa0.n(12)
>494
> じゃあ未定義動作の方が大事っていうケース挙げてみてよ
strlen() に nul 終端してないデータを与えたら未定義動作になるから使用禁止な
今のインターフェースを変えることより未定義動作になることが重要と言うならやれば?

> 古い人間ならパイプぐらい知ってるよね?
パイプを使うプログラムに使うのが間違いと言うだけだろ

509
デフォルトの名無しさん (ワッチョイ df4a-oWec)[sage]   投稿日:2017/01/15 21:56:51  ID:BJa8Ru6k0.n
getsの何が問題なのか30文字以内で頼む

510
デフォルトの名無しさん (ワッチョイ 6719-vSov)[sage]   投稿日:2017/01/15 21:57:21  ID:qtyi6+tl0.n(6)
プロの使う道具に安全装置は不必要
つまりはそいうことだ

511
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/15 21:57:44  ID:HYjV15pa0.n(12)
>495
使用通り使えば正しい結果を出すのに正しくないという理由は?
より良い = 正しい
ではないことぐらいは理解してるよね?
コメント2件

512
デフォルトの名無しさん (ブーイモ MM8b-esp+)[sage]   投稿日:2017/01/15 21:58:12  ID:HXiVsc1JM.n
初心者に対して無責任にCをすすめる輩さえ居なけりゃ
後は自己責任で何でも良いや

513
デフォルトの名無しさん (ワッチョイ 4f6f-Ncwg)[sage]   投稿日:2017/01/15 23:04:34  ID:tpaH0xF80.n
初期のC言語入門書では getsやscanfが普通に使われていたので、
それを受けて、初心者向けのQAなどで、getsを使うと余計なトラブルに合う、
gets は使うべきでない、という言い方がよくされてた。

どうもそれぐらいの頃にC言語を入門した人は、刷り込まれて、getsに対する
嫌悪感が強い気がするね

514
片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK8b-YaJ8)[sage]   投稿日:2017/01/15 23:08:25  ID:DPFQ7IqoK.n
gets_sの話はしないのか?

515
デフォルトの名無しさん (ワッチョイ 3217-q48i)[sage]   投稿日:2017/01/15 23:17:54  ID:+Zy353bS0.n(2)
C言語が危険とか言ってる奴は初心者

516
デフォルトの名無しさん (ワッチョイ 329f-3X21)[sage]   投稿日:2017/01/15 23:24:38  ID:Q6BJ1v/20.n(2)
誰も教えてくれなかったgetsの安全な使い方

⑴ 入力データはヒープに格納しましょう
 スタックではオーバーフロー検出が困難になるので避けましょう
⑵ ヒープのメモリ管理はmallocにお任せではなく自前で行いましょう
 OS(フリースタンディングの場合はCPU)の機能をよく確認して
 適切なサイズで領域を確保しましょう
⑶ アクセスバイオレーションを必ずトラップしましょう
 確保済領域を越えたアクセスが行われた場合に必ず検出しましょう
 領域を伸長して確保するなりエラー終了するなり適切に対処しましょう
コメント1件

517
デフォルトの名無しさん (ワッチョイ 4f42-q48i)[sage]   投稿日:2017/01/15 23:30:53  ID:YV5ExKYS0.n(5)
よく切れる刃物は気をつけて使おう、くらいか

518
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/15 23:38:57  ID:T6BZe6fz0.n(14)
全然切れ味良くないから的はずれ

519
デフォルトの名無しさん (ワッチョイ 3217-q48i)[sage]   投稿日:2017/01/15 23:52:02  ID:+Zy353bS0.n(2)
まぁ今の時代確かにユーザーレイヤのアプリの開発に使うような言語ではなくなったよな
高速なライブラリの開発に使うか
カーネルレイヤのドライバやハードウェアコントローラの開発に使うか
ノンOSプラットフォームの開発で使うか

WindowsでVS使うような提供されたAPIだけ叩いてりゃいいような
プログラマとはいい難いせいぜいよくてスクリプタ低度の奴が
扱える代物ではないよね

520
デフォルトの名無しさん (ワッチョイ b67b-ZK7w)[sage]   投稿日:2017/01/16 00:38:37  ID:lrVKlg3e0.n
getsじゃないとできないことってあるの?

521
デフォルトの名無しさん (ドコグロ MM4e-lGK7)[sage]   投稿日:2017/01/16 06:54:48  ID:6pMMhvrLM.n(4)
使うべきではない

使えない
の区別のつかない子が暴れてただけでしょ
要するにいきなり gets() が使えないって言い出した >445 がもっとも使えないって言うオチ w

あと下らんスレたてた ID:T6BZe6fz はちゃんと後始末しとけよ

522
デフォルトの名無しさん (ワッチョイ 7e13-dHfL)[sage]   投稿日:2017/01/16 07:43:01  ID:wa9Hwxuh0.n
>516
gets() で (3)アクセスバイオレーションをトラップするにはどうすればいいの?

523
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/16 08:47:50  ID:4D4bT+Tb0.n(4)
発狂中のジジイが1匹に、言い過ぎと反発してるのが1匹か

getsの「正しい使い方」はネタしか出てないぞ
コメント1件

524
デフォルトの名無しさん (ドコグロ MM4e-lGK7)[sage]   投稿日:2017/01/16 12:45:55  ID:6pMMhvrLM.n(4)
>523
>511 に回答してからほざこうね、ぼくちゃん w

525
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/16 13:23:00  ID:4D4bT+Tb0.n(4)
「このプログラムに80文字を超える行を入力してはいけません。入力した場合の動作は不明です。」って「使用」か ? w
コメント2件

526
デフォルトの名無しさん (ワッチョイ db2c-dHfL)[sage]   投稿日:2017/01/16 13:25:06  ID:5bpc7cMa0.n
しようもない話はこの辺で終わりにしよう

527
デフォルトの名無しさん (ワッチョイ 1f7b-lDPz)[sage]   投稿日:2017/01/16 14:13:58  ID:pfhmv7nO0.n
>525
ドキュメントに制約事項として書いておけば仕様ですね

528
デフォルトの名無しさん (フリッテル MMce-xA2o)[sage]   投稿日:2017/01/16 17:22:38  ID:jKqhoN+GM.n
C言語の仕様読まれたし


529
デフォルトの名無しさん (ドコグロ MM4e-lGK7)[sage]   投稿日:2017/01/16 18:47:01  ID:6pMMhvrLM.n(4)
>525
誤字にしか突っ込めないとかかわいそうな奴 w
コメント1件

530
デフォルトの名無しさん (ワッチョイ 1f85-y9rD)[sage]   投稿日:2017/01/16 19:02:29  ID:LsnAvwpU0.n
似た名前でも gets() と fgets() とは雲泥の違い、どうしてこうなった?

531
デフォルトの名無しさん (ワッチョイ 3217-q48i)[sage]   投稿日:2017/01/16 19:46:22  ID:AUBfY0al0.n
ここまでダンディ坂野への言及が一切ないのは少々予想外。
コメント2件

532
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/16 19:58:01  ID:4D4bT+Tb0.n(4)
>529
>誤字にしか突っ込めないとかかわいそうな奴 w
つまり本気で

> 「このプログラムに80文字を超える行を入力してはいけません。入力した場合の動作は不明です。」

こう考えてるって事だな ぷぷぷ
コメント2件

533
デフォルトの名無しさん (ドコグロ MM4e-lGK7)[sage]   投稿日:2017/01/16 20:23:22  ID:6pMMhvrLM.n(4)
>532
で?
>511 にはなにも言えないってことでいいのかな? w
コメント1件

534
デフォルトの名無しさん (ワッチョイ 92c0-oWec)[sage]   投稿日:2017/01/16 21:49:54  ID:YbHVSczU0.n
>531
ダンディはいなくてもいい存在だから

535
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/16 22:14:50  ID:4D4bT+Tb0.n(4)
>533
可哀想なくらいに頭悪いな >532がそれだよ
「使用通り使う」とやらはネタでしか無い

536
デフォルトの名無しさん (ワッチョイ b23c-lGK7)[sage]   投稿日:2017/01/16 23:22:23  ID:Afs2A6pw0.n
低能ループ頂きました w

537
デフォルトの名無しさん (ワッチョイ c3dc-0v0L)[sage]   投稿日:2017/01/17 05:56:42  ID:snMaBsBG0.n
>531
>460 はソレだと思ったんだけど。

538
デフォルトの名無しさん (ワッチョイ 67e3-UjPM)[]   投稿日:2017/01/17 19:16:21  ID:3xEzL0NM0.n
チキンナ…

539
デフォルトの名無しさん (JP 0Hf2-dHfL)[sage]   投稿日:2017/01/18 10:50:37  ID:I4y9jt7uH.n
超初心者です
int main(void){

int i;

int d[255];
for(i = 0;i < 5;i++){

scanf("%d", d[i]);

}

for(i = 0;i < 5;i++){

printf("%d", (d[i] + 1)- d[i]);

}

これどこが間違ってるの?
コメント3件

540
デフォルトの名無しさん (ワッチョイ 4f19-YL17)[sage]   投稿日:2017/01/18 11:08:01  ID:p9TLQNPi0.n
質問の仕方が間違ってるかと。


とりあえず return が無いからエラーでるな。
コメント1件

541
デフォルトの名無しさん (ドコグロ MMe3-S8Zq)[sage]   投稿日:2017/01/18 11:12:01  ID:5+QtbuoXM.n
>539
何をやってどうなって欲しいのがどうなったかくらい書こうよ

542
デフォルトの名無しさん (ワッチョイ 4f42-q48i)[sage]   投稿日:2017/01/18 11:15:22  ID:NzS4tvDO0.n(2)
scanf("%d", &d[i]);
コメント1件

543
デフォルトの名無しさん (JP 0Hf2-dHfL)[sage]   投稿日:2017/01/18 13:20:22  ID:VNRYcAN1H.n
何がいけないの?

544
デフォルトの名無しさん (ワッチョイ 1f7b-lDPz)[sage]   投稿日:2017/01/18 14:57:19  ID:AiIDzBtL0.n
セグメンテーションフォールト

545
デフォルトの名無しさん (フリッテル MMce-xA2o)[sage]   投稿日:2017/01/18 14:58:24  ID:pHJgjtGxM.n
>539
scanfの第二引数がポインタじゃなく値を渡してるのがいけない
コメント1件

546
デフォルトの名無しさん (ワッチョイ c3dc-0v0L)[sage]   投稿日:2017/01/18 15:24:14  ID:kHLvx3oS0.n
>539 本当に初心者かなぁ。

main() の関数終了の閉じ波カッコがないという引っ掛け問題じゃないのか。

547
デフォルトの名無しさん (ワンミングク MMe2-IBT7)[]   投稿日:2017/01/18 15:28:19  ID:w2Ge5miGM.n
なんとなく
d[i]+1 は
d[i+1]な気がする
もちろんどっちでもエラーにはならないない

548
デフォルトの名無しさん (ワッチョイ 1f7b-cG99)[sage]   投稿日:2017/01/18 16:31:10  ID:y5PvnF5k0.n
>540
>とりあえず return が無いからエラーでるな。
初心者は解答しないように

549
デフォルトの名無しさん (ワントンキン MMe2-STcG)[sage]   投稿日:2017/01/18 20:11:44  ID:S41kFDpWM.n
戻り値必要だよな。

550
デフォルトの名無しさん (ワッチョイ b20b-0Plu)[sage]   投稿日:2017/01/18 20:39:43  ID:24H6FiaC0.n
mainに戻り値は必要じゃないです
書かなければ0を返すと保証されてます

551
デフォルトの名無しさん (ワッチョイ 2f3c-dHfL)[sage]   投稿日:2017/01/18 20:45:09  ID:sCxzsbAt0.n(2)
C++ じゃなく C でもそうだっけ?
コメント1件

552
デフォルトの名無しさん (ワンミングク MMe2-SqzF)[sage]   投稿日:2017/01/18 21:01:22  ID:0GSOJvhdM.n
>551
c99からは
コメント1件

553
デフォルトの名無しさん (ワッチョイ 2f3c-dHfL)[sage]   投稿日:2017/01/18 21:06:51  ID:sCxzsbAt0.n(2)
>552
ありがとう
C++環境でCコーディングしてるだけのケースが多々あって
実はそれC++だけ に嵌ってるかと思って

554
デフォルトの名無しさん (ワッチョイ 12cb-q48i)[sage]   投稿日:2017/01/18 22:01:46  ID:goP4qmTy0.n
「俺の知ってるバージョンがそういう仕様だからそれが常識だ!!」

555
デフォルトの名無しさん (ワッチョイ 4f42-q48i)[sage]   投稿日:2017/01/18 22:08:07  ID:NzS4tvDO0.n(2)
値を返さないmainってなんだか気持ちが悪い

年寄りだから許して

556
デフォルトの名無しさん (ワッチョイ 3217-q48i)[sage]   投稿日:2017/01/18 22:38:02  ID:ekivbMLx0.n
>542>545が正解

557
デフォルトの名無しさん (ワッチョイ f37b-aKms)[sage]   投稿日:2017/01/18 23:16:18  ID:YJRB0oa00.n
省略可能なものは省略しない
それが俺のジャスティス

558
デフォルトの名無しさん (ブーイモ MM8b-ws9s)[sage]   投稿日:2017/01/18 23:34:18  ID:qZpBfO5GM.n
longとか省略せずに、auto signed long intと書いてるか?
コメント1件

559
デフォルトの名無しさん (ワッチョイ cfba-Taza)[sage]   投稿日:2017/01/19 00:00:05  ID:NeX58ZmE0.n
値返すよって最初に言っといて返さないのは詐欺だから許せない!main()であっても

暗黙の動作が規定されるほど縛りが多くなってCで書く旨味が減ってくると思うんだけどな
あと可変引数とか割とアクロバットな関数を最初に習うのは嫌がらせだと思う
stdioはゲッツとかも失敗して学べ的な修行のためにあるんだろうか、std*から外しても良いくらいだと思う
main()の戻り値保証するより標準関数を整備しないのか、まあ今更の言語だけども…
以上愚痴でした

560
デフォルトの名無しさん (ワッチョイ 737b-EU0b)[sage]   投稿日:2017/01/19 00:30:32  ID:k8vd3mrR0.n
>558
ネタだと思ってるんだろうけど真面目な話で「紛れの無い書き方」を意識してる
型なんてどうせtypedefの一行でしか書かないし手間でも何でもないから全て明示する
あーそれとautoは別の用途で使われだしたから書いちゃダメよ
コメント1件

561
デフォルトの名無しさん (ブーイモ MM27-xQI9)[sage]   投稿日:2017/01/19 01:31:07  ID:LPaFmeuyM.n
>560
c++じゃなくて?
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

プログラム板 タイトル検索

このスレッドが人気です(実況系)
おはよう!時代劇 暴れん坊将軍3 #49[字][再] (211)テレ朝実況
ナカイの窓「放送200回SP」★2 (886)NTV実況
【マターリ】マツコ&有吉の怒り新党 (911)テレ朝実況
[新]ラブホの上野さん<Wナイト> #01 (889)フジ実況
全豪オープンテニス2017 錦織圭×J・シャルディ★5 (521)NHK実況
NEWS23 ★2 (757)TBS実況
【マターリ】タラレバ娘 第1話 (950)NTV実況
報道ステーション★5 (757)テレ朝実況
このスレッドが人気です(ニュース系)
【芸能】<韓国>タレントのパク・ミョンス「韓国の人々はクール。しっかり謝れば理解する」日本に「しっかり頭を下げて謝って」★3 (1002)音楽・芸能ニュース
【国際】中国外務省「日本政府は正しい歴史観を国民に教育し、アジア隣国と国際社会の信頼を取り戻すことを促す」★2 (927)ニュー速+
【週刊文春】SMAP独立? 飯島元マネジャーが新会社代表に就任★6 (1000)音楽・芸能ニュース
【社会】生活保護「なめんな」ジャンパー ネットで激励相次ぐ「何が悪いのか」 (1000)ニュー速+
【歴史戦】「中国に負けるな」 アパホテル書籍、ネットで反響広がる (1002)ニュー速+
【国際】中国外務省「日本政府は正しい歴史観を国民に教育し、アジア隣国と国際社会の信頼を取り戻すことを促す」 (1001)ニュー速+
「明らかな管理ミス」 箱開けたら半分以上が食べかけのクリスマスケーキ セブン-イレブン 店員の私物売る 商品と一緒に冷蔵庫で保管★4 (1000)ニュー速+
【週刊文春】SMAP独立? 飯島元マネジャーが新会社代表に就任★7 (406)音楽・芸能ニュース
プログラム板の人気スレ
【統計分析】機械学習・データマイニング11 (917)
C++相談室 part129 (165)
C言語なら俺に聞け 138 (561)
Excel VBA 質問スレ Part45 (223)
Xamarin Part3 (236)
ふらっと C#,C♯,C#(初心者用) Part126 (244)
Visual Studio 2015 Part7 (981)
【PHP】下らねぇ質問はここに書き込みやがれ 7 (623)
くだすれPython(超初心者用) その31 (820)
Androidプログラミング質問スレ revision52 (537)
次世代言語議論スレ【Go Rust Haskell Scala Erlang Elixir】 (460)
クラス名・変数名に迷ったら書き込むスレ。Part27 (740)
推薦図書/必読書のためのスレッド 80 (950)
スレ立てるまでもない質問はここで 145匹目 (85)
+ JavaScript(ECMAScript)質問用スレッド vol.122 + (976)
☆★Java質問・相談スレッド179★★ (559)
Swift part9 (581)
Ruby 初心者スレッド Part 59 (551)
VRプログラム雑談【Unity/UnrealEngine】【HTC Vive/Oculus Rift/その他VR】 (342)
+ JavaScript の質問用スレッド vol.122 + (628)
【C++】 DirectX初心者質問スレ Part40 【C】 (450)
プログラミング言語 Rust 2 (308)
Java入門・初心者質問スレ Part.2 (295)
【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 (459)
人工知能ディープラーニング機械学習のための数学 (105)
Swift part7 (1026)
テストしにくいコードをテストする方法 その2 (51)
【初心者歓迎】C/C++室 Ver.100【環境依存OK】 (234)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
Amazon


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 正常取得 - 26件 - 取得完了