[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 10/23 13:11 / Filesize : 242 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門編)Part 129



1 名前:デフォルトの名無しさん [2015/05/27(水) 06:15:55.14 ID:gRxCv8ae.net]
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 127
peace.2ch.net/test/read.cgi/tech/1424244688/
★過去スレ
ttp://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 168代目
peace.2ch.net/test/read.cgi/tech/1408962564/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
ttp://codepad.org/
ttp://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
【重要】
当たり前の事ですが、2chではコピペ荒らしは禁止されています

867 名前:デフォルトの名無しさん [2015/07/21(火) 22:40:35.31 ID:ZFydeI54.net]
自然界にゼロが存在しないことを証明できたら世界が変わる。

でもゼロが無いことくらい誰でも感覚的にわかってるよね。

868 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 23:29:45.43 ID:tYidWCQl.net]
ゼロという概念は有るじゃん。

869 名前:デフォルトの名無しさん mailto:sage [2015/07/21(火) 23:34:00.23 ID:ykIrCRFz.net]
>>855
無いっていう言葉使っている時点でゼロの概念を持っているだろ。

870 名前:デフォルトの名無しさん [2015/07/21(火) 23:43:07.17 ID:LWWHwaoy.net]
>>855
1と足し算で、2=1+1がつくれるが。
1と引き算でつくれる1-1が0だ。

871 名前:デフォルトの名無しさん [2015/07/22(水) 00:48:02.54 ID:1bYFtsNS.net]
いや、ちょっと待って。「自然界に」って言ってるんだよ。
いったいどういう意味かなあ。
物質とか現象としてということかなあ。
0は存在しなくても1や2は存在するのだろうか。

872 名前:デフォルトの名無しさん [2015/07/22(水) 01:03:30.69 ID:r7y5Ju2f.net]
基数交換法で再帰呼び出しを除去することがクイックソートほど重要ではないのはなぜか?

お願いします

873 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 01:11:50.52 ID:M/n0+BzS.net]
>>859
0も1も2も人間が作り出した概念。

874 名前:デフォルトの名無しさん [2015/07/22(水) 01:19:33.86 ID:1bYFtsNS.net]
>>861
そう書いても良かったんだけど当人がどういうつもりだったかを知りたい。

875 名前:デフォルトの名無しさん [2015/07/22(水) 03:46:38.65 ID:npJxtfpG.net]
0から始まるのは文字コードで0を先に持ってきたせいじゃない?



876 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 04:30:31.09 ID:Lt27C2H/.net]
なんだそりゃ

877 名前:デフォルトの名無しさん [2015/07/22(水) 04:36:42.98 ID:npJxtfpG.net]
まあ基準から+1、+2、+3だからね。

878 名前:デフォルトの名無しさん [2015/07/22(水) 05:03:01.96 ID:npJxtfpG.net]
>>864
コンパイラのこと考えたことないの?

879 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 05:13:57.35 ID:GNp+ziID.net]
またお前か

880 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 11:59:40.81 ID:kIeW59ou.net]
文字コードは関係ないだろ

881 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 17:52:32.56 ID:QdTviyYV.net]
宣言以外のa[2]は*(a+2)の別の表現ってだけだから、
配列が0から始まるって言葉自体に違和感がある。
配列の先頭アドレスがaであって、
その先頭アドレスには当然最初の

882 名前:要素が入っていて、
次のアドレスには次の要素が入っているというごく自然な表現という感覚しかない。
[]
[ここ壊れてます]

883 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 17:59:13.21 ID:yxlux+WS.net]
配列の先頭アドレスをポインタに入れた時、常に要素が1から始まるようにしてあると
ポインタも+1してから使わないとバグる
そういう目に遭いたいらしいわ

884 名前:デフォルトの名無しさん mailto:sage [2015/07/22(水) 18:11:45.18 ID:8TpaOP4G.net]
まだ0、1論争かよ。
迷ってんならVbaでも使えよ。
-100でも何でも行けるぞ

885 名前:デフォルトの名無しさん [2015/07/22(水) 21:09:43.08 ID:kfPxwJJV.net]
だからさ、ソースコードと実装は違うから。



886 名前:デフォルトの名無しさん [2015/07/23(木) 01:19:55.01 ID:65Ur3bjf.net]
QZは毎日が人生の夏休み

887 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 21:33:06.04 ID:+NRG6mWL.net]
ぶっちゃけ慣れの問題
どっちでも構わん
ただperlみたいに選択できるのは勘弁

888 名前:デフォルトの名無しさん mailto:sage [2015/07/23(木) 23:34:14.60 ID:168Aqn4V.net]
>>855
言葉遊びに過ぎないし、パラドックスの研究の古いテーマじゃん。
その理屈だと、1や2も「存在」はしない。

889 名前:デフォルトの名無しさん [2015/07/24(金) 00:30:41.05 ID:waPr5lt7.net]
>>874
配列とコレクションの違いが分からないようではダメ。

890 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 01:52:04.39 ID:IyIFnxBR.net]
>>876
何言ってるんだ?

891 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 06:50:29.62 ID:26mYiG3x.net]
配列は、単にメモリ上に連続で確保された変数の集まり。
配列それ自体は、自分自身の要素数の情報を持たず、アドレス(ポインタ or 添え字)を経由しないと任意の要素にアクセスできない。
ましてや、先頭番地の情報など持っているはずもない。配列名は先頭要素の別名に過ぎない。
ここまで言えば、コレクションとの違いもわかるだろ。

892 名前:デフォルトの名無しさん mailto:sage [2015/07/24(金) 08:51:49.66 ID:U7biJhIK.net]
そんな事はわかってるんだが…

何を言っているのかわからないっていうのは、>>874に対して>>876と言う、的外れとしか思えないレスをしていることに対してなんだけど…

あれ?もしかして触っちゃいけない人なのかな?

893 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/07/25(土) 12:27:26.19 ID:Uks06VJa.net]
アンパンマン、新しい顔が二つできたよ!!!

lis (singly linked list for C language)
https://github.com/katahiromz/lis

lst (doubly linked list for C language)
https://github.com/katahiromz/lst

894 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 15:04:27.61 ID:wTwAcdhU.net]
配列名は先頭要素の別名って言い回しはどうかと思う
それだとまるで配列名には最初のデーターが詰まってるみたいじゃないのよさ
配列名にはアドレスしか入ってないのに

895 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 17:41:25.81 ID:GU4GIGEf.net]
片山博文MZって何者? QZと同じにおいがする



896 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 17:44:56.04 ID:bLirGUmg.net]
>>882
片山先生を知らないなんて完全に潜りだろw

897 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 18:44:06.12 ID:6zkZTkly.net]
罵倒合戦があったし,片山センセと QZ を一緒にしちゃセンセが迷惑する
ところで camellia はオリジナルのソースから手を加えたの?

898 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 21:20:02.61 ID:GU4GIGEf.net]
>>883
モグリでごめんね?
>>884
camelliaは仕様書を読んで一から自分で実装しましたよ。
手直しして今はだいぶ速くなったよ。

899 名前:デフォルトの名無しさん mailto:sage [2015/07/26(日) 14:28:04.79 ID:d9clz1q1.net]
>>874
なんかバージョン5のいくつあたりかから
 local $[=1;
とかやると怒られるようになっとる
言語仕様がある日突然変わるのがスクリプト言語の醍醐味

900 名前:デフォルトの名無しさん mailto:sage [2015/07/27(月) 02:11:37.78 ID:cbxH7i7j.net]
QZただいま名無し潜伏中

901 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/07/28(火) 16:53:34.62 ID:QJSjRtNV.net]
アンパンマン、新しい顔ができたよ。

vec2 (fixed block vector for C language)
https://github.com/katahiromz/vec2

902 名前:デフォルトの名無しさん [2015/07/28(火) 21:07:16.02 ID:vblF84RR.net]
>>886
怒られるというか、deprecated だね。使えなくなったわけじゃないけど
そういうことをしたければ tie しなさいということだね。

903 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 23:08:06.27 ID:PqGJhZis.net]
プログラミングをするなら、Windowsとmacはどちらがいいですか?

904 名前:デフォルトの名無しさん [2015/07/31(金) 23:11:51.42 ID:aMEtXk8u.net]
Windows

905 名前:デフォルトの名無しさん mailto:sage [2015/07/31(金) 23:56:20.21 ID:y5XWVYV7.net]
>>890
どっちでもいいだろ。
好きな方を選べ。



906 名前:デフォルトの名無しさん [2015/08/01(土) 21:25:51.86 ID:jIqrjnfJ.net]
mallocでメモリ確保する時はサイズの指定をするのに
freeでメモリを解放する時はサイズの指定をしなくてもいいのは何故なんでしょうか?

907 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 21:41:16.47 ID:QePJH2WN.net]
返されたポインタの前にサイズ他の管理情報を置いているメモリーアロケーターが多い。
こんな感じ
struct mem {
size_t size;
...
char data[]; <==== mallocはこのアドレスを返す
};

908 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:13:36.30 ID:AlahCyHh.net]
扱いなれてる方。

909 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:20:16.52 ID:jIqrjnfJ.net]
>>894
ありがとうございました。
参考書とかには標準関数の使い方の説明はあっても
内部の実装の仕方の説明まではなかなかないので勉強になりました。

910 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:32:59.39 ID:mMrs3R6A.net]
void free(const void *,...);

という実装で二番目の引数を見るという
こともありえる鴨。規格外になるかも
しれないし、ソースレベルでの互換性が
失われるかもしれないが。

char *p=malloc(1024);
free(p); //普通の意味での解放
free(p,256);// pの先頭から256バイト目以降1023バイト目
までを解放

911 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:35:23.69 ID:mMrs3R6A.net]
そういう場合実際には
void _free(const void*,...);
#define free(x) _free(x,0)
とかしてるんだろね

912 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:36:26.78 ID:qeAWL2lY.net]
>>897
規格外どうのこうのの前に、二番目の引数の有無をどうやって判断するんだよ...

913 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 22:36:50.00 ID:mMrs3R6A.net]
free(p,256)
ぢゃなくて_free(p,256)
だた。スマソ

914 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:25:35.49 ID:CYsajC4S.net]
例えば、mallocで、サイズを200と指定すると、
アドレス100〜300番地を確保する。
それをプログラムは覚えている

次に、free 100番地と、
先頭アドレスだけを指定しても、

プログラムはサイズも覚えているので、
自動的に、100〜300番地を解放する

915 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:27:05.42 ID:oGwoY1R1.net]
覚えてるならgetする方法も提供しろよ常識的に考えて



916 名前:デフォルトの名無しさん mailto:sage [2015/08/01(土) 23:41:09.84 ID:oGwoY1R1.net]
C/C++はオワコン
ソフトウェアエンジニアリングの仕事ではない
Javaやれ

917 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 01:01:31.96 ID:7iVchM+h.net]
え、今更 Java やるの?

918 名前:デフォルトの名無しさん [2015/08/02(日) 02:07:49.29 ID:wwgo3D7Q.net]
>>896
実装なんて分からない。

妄想レスもあるので注意。

919 名前:デフォルトの名無しさん [2015/08/02(日) 03:28:18.62 ID:sfcp/621.net]
>>903
と言ってると、ますます日本のソフトウェア産業が土木工事になります。

920 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 08:15:52.14 ID:8TunHJN8.net]
>>906
実装屋はどこまで行っても実装屋でしかない。

921 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:00:03.54 ID:YdYZAVrS.net]
ユーザーの誤った書き込み操作が行われやすい
場所に重要な情報を置くのは汎用mallocでは
あまりやりたくない実装方法
隔離保護された場所にビットマップとかを
置いて(malloc領域を)管理。

922 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:04:25.44 ID:SLv/z ]
[ここ壊れてます]

923 名前:Rdd.net mailto: >>908
たかだかユーザーのプログラムにリンクされたライブラリの分際で
「確保保護された」領域を入手できるのか?
[]
[ここ壊れてます]

924 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:39:58.33 ID:8sAzrEqX.net]
>>908はそのようなライブラリを自作して使ってるんだろうな。
あの偏屈王DJBでさえ、mallocは自作してなかったのにスゲー。日本の宝。
是非公開して欲しい。

>>909
ページを書込み保護すれば出来る。きっと>>908はそうやっている。
超絶テクニックで、malloc/freeの都度発生する書き込みモードの変更による性能低下は軽く克服してるんだろう。
是非是非公開して欲しい。

925 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:49:40.21 ID:SLv/zRdd.net]
>>910
>ページを書込み保護すれば出来る。
たかだかユーザーモードあるいはユーザーに提供された領域を
書き込み保護をかけるとか,バンバン使われる malloc()/free()
ルーチンが重くならないかね?



926 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 09:51:52.46 ID:QpxppfHz.net]
実装はOS依存の場合も。

927 名前:デフォルトの名無しさん [2015/08/02(日) 10:08:57.20 ID:8sAzrEqX.net]
>>911,912
そこは偏屈王DJBを楽勝で凌駕する>>908の事だから、凡人には思いつかない超絶テクニックで回避してるに決まっている。

928 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:36:02.95 ID:4+/pksin.net]
>>896
ちょっそれK&R本に実装例の1つが詳細に書かれていた希ガス…

929 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 14:48:48.65 ID:4+/pksin.net]
ていうかネットに転がってた、
ttp://radlon.github.io/blog/2014/08/25/krmalloc/

K&R malloc!!!!!!!!!!!!!!!11!!!!!!!!1111

930 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 15:01:15.98 ID:q/ikqjRA.net]
しょっぱなからコードのスペルミスかましてたので見るのやめた

931 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:33:28.15 ID:q4wUyYJ7.net]
p[-1]なんかはバグでうっかり破壊しがちだが、
64ビットとアドレス空間のどこかにある
ビットマップをうっかり破壊する確率は
比較的低いって話だろ。

ってか >>894 みたいな実装は、古いシステムと組み込み系でしかもう使われていないのでは。

932 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:42:19.52 ID:4+/pksin.net]
>>917
VCでは現役
メモリブロックの管理情報(リンクチェーン)が実データ領域と隣接して存在するからこそ
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
とかでリンクチェーンの破壊を検出できすぐる、

ていうか>>894みたいな実装の代表例がK&R本に書いてあるやつなのであって、
マジK&R本は不磨の大典

933 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 20:44:57.53 ID:4+/pksin.net]
メモリ破壊系のバグは破壊が起きたタイミングで即検出しないとデバッグがやっかい極まりない話になるので
データ領域でメモリ破壊が起きても動いてしまうビットマップ方式はちょっと…

934 名前:918 mailto:sage [2015/08/02(日) 20:51:55.93 ID:4+/pksin.net]
スマン訂正、ヒープの整合性確認は_CrtCheckMemory()呼び出しでやるんだった;
(もしくは_CrtSetDbgFlag(_CRTDBG_CHECK_ALWAYS_DF)でmalloc()/free()毎に自動チェック)
実データ領域でのメモリ破壊がこれで高い率で検出できる

_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
というのはプログラム実行時のリークチェックのやつ

935 名前:片山博文MZ ◆T6xkBnTXz7B0 [2015/08/02(日) 21:45:05.24 ID:/jG0U/Tz.net]
C11 gccでインライン関数を分割コンパイルすると、シンボル重複エラーがでるんだが、
どうすればいいか。C++は簡単だった。



936 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/08/02(日) 22:01:40.19 ID:/jG0U/Tz.net]
やっぱりCでインライン化はやめた方がよかったか

937 名前:デフォルトの名無しさん mailto:sage [2015/08/02(日) 22:33:38.49 ID:fK6YlTvs.net]
ヘッダファイルにインライン関数を書いて、各ソースから参照するって話ではなくて?

938 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 07:14:10.73 ID:PHSALL0j.net]
質問です。

printf("Aを入力して下さい >");
scanf("%x",&n);
printf("%d",n);

このように書いたときに、最後に10が表示されるのですが、なぜでしょうか。
Aが入力されると16進数としてnに格納されると思いますが、
最後にはそれを10進数で出力するので65になるのではないでしょうか?

939 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 07:25:47.50 ID:qre9PyEM.net]
%xなんだから、入力した文字列自体を16進とみなす
A=10, B=11, C=12,,,

例えば、1A とか入力出来るが、どう考える?

940 名前:デフォルトの名無しさん mailto:sage [2015/08/03(月) 11:03:40.66 ID:PHSALL0j.net]
>>925
ありがとうございました。納得しました。
「16進数のA」と書いてあったのですがそういうことだったのですね。

941 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 21:51:45.27 ID:sGt3KLZv.net]
C/C++はオワコン
何も新しいソフトウェア技術を取り入れてない
オブジェクト指向止まりの化石言語
こんなのにしがみついてたら未来ないよ

942 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 22:26:04.26 ID:0GTb8PhE.net]
>>927
未来の有る言語を具体的に挙げてみよ

943 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 22:55:02.33 ID:sGt3KLZv.net]
javascript最強

944 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 22:56:09.34 ID:B7i1Mk8j.net]
うわぁ・・・

945 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 23:19:33.87 ID:8xO+ORV8.net]
visual basic 最強



946 名前:デフォルトの名無しさん mailto:sage [2015/08/06(木) 23:31:28.33 ID:0GTb8PhE.net]
>>929
もうちょっと面白い展開を期待した。

947 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 01:51:10.39 ID:NqgUCWy0.net]
>>928
アセンブラ、
無限の可能性を秘めている。

948 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 07:15:20.34 ID:RTmVcCCe.net]
お前らDIもAOPもわかんねえだろ
完全に時代遅れなんだよ

949 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 07:17:21.98 ID:Pymojyae.net]
0000: JP 0000

950 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 07:45:43.98 ID:LuqeIwCC.net]
HALT

951 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 08:18:27.03 ID:s6JmbTZM.net]
>>931
俺も俺も>>932

952 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 13:43:24.15 ID:uyJvzdpF.net]
>>934
ああ知ってるよ
確か COBOL/2005 がいきなり名前を変えたやつだろ

953 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 21:48:55.89 ID:RTmVcCCe.net]
大学はWEB系のプログラミングを教えるべき
大学教授が古い人間しかいないから時代遅れの化石言語しか教えられない
WEB業界では新しいソフトウェア技術がどんどん出て来てるのに完全に日本は置いていかれている
C言語なんて糞言語やる前にもっと危機感を持つべき

954 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 21:54:31.44 ID:TJyjY+1J.net]
そんなことやるのは専門学校だけで十分

955 名前:デフォルトの名無しさん mailto:sage [2015/08/07(金) 21:56:09.13 ID:RTmVcCCe.net]
日本のソフトウェア技術が世界と比べて劣っているのは
既得権益にしがみついている時代遅れの大学関係者のせいなのは間違いないね



956 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 01:24:04.78 ID:LsDzIRl9.net]
こんな会社ばっかだから。
ttp://www.geocities.co.jp/Playtown-Dice/3834/KAGE-OL12.jpg

957 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 06:48:13.81 ID:D0x4pWwH.net]
大学では計算機科学の一般教養としてはSICPをみっちりやればおk

958 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 06:53:47.83 ID:D0x4pWwH.net]
ていうか今ググったらSICPが何かタダで読めるようになっているっぽい
ttp://d.hatena.ne.jp/minghai/20140402/p1

あと副読本として『翻訳系構成論序論』とか、
内容もさることながら翻訳がたいへん味わい深い

959 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 07:31:28.76 ID:Ud96BClW.net]
和田先生訳の方も公開されてるし、原著も公開されてる。
あと、h抜きは素人っぽいからやめろ。

960 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 08:24:02.24 ID:cYx2D4V+.net]
>>945
> あと、h抜きは素人っぽいからやめろ。
自称玄人カッケーっす

961 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 09:11:04.96 ID:D0x4pWwH.net]
(ノーコメント)

962 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 09:31:28.19 ID:D0x4pWwH.net]
ていうか素人丸出しの質問のですが、
strtol()の第1引数はconst char*でconst付きなのに、
第2引数はchar**であってconst無しになるなのは何でですか??

963 名前:デフォルトの名無しさん [2015/08/08(土) 11:23:27.11 ID:Ud96BClW.net]
>>946
素人の補集合は玄人じゃない。
補集合は高校数学で学ぶから、中学生はROMってろ。

964 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 12:03:47.08 ID:cYx2D4V+.net]
>>949
> あと、h抜きは素人っぽいからやめろ。
上から目線でアホなこと言ってるから自称玄人って言われてるだけ
最近覚えて使いたかったんだろうけど補集合は関係ない

965 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 12:27:31.84 ID:y5hyBra1.net]
保守烏合



966 名前:デフォルトの名無しさん [2015/08/08(土) 12:44:06.05 ID:Ud96BClW.net]
>>950
hを抜くバカに対して上から目線は当然。
繰り返すが、中学生は補集合習ってから出直しなさい。

967 名前:デフォルトの名無しさん [2015/08/08(土) 12:47:15.24 ID:Ud96BClW.net]
バカとは、思考能力が欠除してる障害者の総称な。念のため。

968 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 13:27:04.14 ID:HVhVW7oy.net]
>>953
自己紹介乙

969 名前:デフォルトの名無しさん [2015/08/08(土) 13:43:02.67 ID:Ud96BClW.net]
>>954
こりゃまた、h抜きに負けるとも劣らない古参煽り。

ニワカ乙
って、返すんだっけ? 頭悪そう。

970 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 13:51:25.58 ID:cYx2D4V+.net]
かわいそうな奴...
さすが、にちゃん玄人ですね!

971 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:04:41.69 ID:1hj8NI9z.net]
まあなぜhを抜いてるのかを知っている時点でそれなりの年齢のはずなんだけどね
もっと大人にならなきゃいけないよね

972 名前:デフォルトの名無しさん [2015/08/08(土) 14:16:31.72 ID:Ud96BClW.net]
>>956
補集合習ってから出直せと言ったはずだぞ。中学生。

973 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:43:13.18 ID:cYx2D4V+.net]
>>958
で、どれとどれが補集合じゃないって言ってるんだ?
書いてみ w

974 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 14:48:59.02 ID:1hj8NI9z.net]
素人の補集合≠玄人
って書いてあるじゃん
なんか低レベルすぎる争いが楽しそうなので混ぜて

975 名前:デフォルトの名無しさん [2015/08/08(土) 14:56:08.54 ID:Ud96BClW.net]
>>959
まだ、習ってないことを無理して理解しなくても良い。



976 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 15:17:48.69 ID:cYx2D4V+.net]
>>960
h抜きしない奴は玄人って言ってるわけじゃないぞ
低レベルの話にもついてこれないなら割り込んでくるなよ...

>>961
はい、逃げた w

977 名前:デフォルトの名無しさん [2015/08/08(土) 15:34:58.60 ID:Ud96BClW.net]
>>962
補集合を知らないことを、そんなに必死でアピールしなくて良いよ。中学生。

978 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 17:48:46.64 ID:cYx2D4V+.net]
>>963
>>959 にレスできないチキン w

979 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 17:55:19.32 ID:Gxm0vaAV.net]
プログラマー目指してる大学生なんですけど、優秀な趣味プログラマーでも
長年仕事でプログラミングしてる平凡なプログラマーに負ける事っていったら
何ですか?

どんだけプログラミングしてても実務で培われるものってあるじゃないですか
そういうのが知りたいです。ちなみに僕は優秀でもなんでもない趣味プログラマですw

980 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:03:00.86 ID:1qUf1CZr.net]
このままいつもの人まで出てきてスレを
使いきる気かよ

981 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:08:16.54 ID:D0x4pWwH.net]
>>965
ようわからんが仕様と検証と納期に対してどんだけシビアになれるかの違いじゃないの

982 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 18:13:42.89 ID:D0x4pWwH.net]
>>965
併せて工数は予算内に、

ていうか>>948の回答も誰かよろしくなのデス…
パーサを作るときにstrtol()の第1、第2引数のインターフェースを真似た関数をしばしば作るのですが、
第2引数をconst付きにしなくていいのか今も悩み中、

あと>>944の結びは「翻訳もカッケーぃ☆」としとけば完璧だったorz

983 名前:デフォルトの名無しさん [2015/08/08(土) 19:04:38.81 ID:Ud96BClW.net]
>>964
心配すんな中学生。クラスの平均以上の学力あって、補集合習えばわかるようになるから。

>>968
中学生弄ってて回答した気になってたわ。第2引数がconstじゃないのは、const char **にはchar **も渡せる。
すなわちhoge(const int); 以下の意味しかないが、それでもconstつけたいならつければよい。

984 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 19:50:59.65 ID:D0x4pWwH.net]
>>969
ちょっ>>948のは、現実のstrtol()の第2引数はchar**でconst char**を「渡せない」んだけど何か理由有り?
という質問のですが…

ぶっちゃけ説明不足だったかもしれないので今から説明すると、strtol()の第2引数がchar**である結果、
次のコードの変数endをconst付きにできず、万が一[A]の行が紛れ込んでもコンパイル時にwarningにならないという、
long foo(const char* str) {
 /*const*/ char* end; /* ←左のconstのコメントアウトを外すとエラー*/
 long val = strtol(str, &end, 10);
 *(end - 1) = '*'; /* [A] 上の結果、strを書き換えるコードが合法に… */
 return val;
}
このような事故は、strtol()の第2引数がconst char**でありさえすれば防げるのですが、そうなっていないのは何故…!?という疑問

あと引数の型const char**に対し、char**型変数を渡せるというのは真実としていかがなものかと…(VCだとエラーになる

985 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:17:04.90 ID:Ud96BClW.net]
>>970
それをstrtolのプロトタイプで防止しようとするのが間違い。
第2引数がconstであっても、
char *endptr;
strtol("123x", &endptr);
はエラーではない。

> あと引数の型const char**に対し、char**型変数を渡せるというのは真実としていかがなものかと…(VCだとエラーになる
ここはCのスレだよ。C++ならエラーだろうね。



986 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:27:38.50 ID:D0x4pWwH.net]
>ここはCのスレだよ。C++ならエラーだろうね。
ほんまや(゜д゜)!Cだとconst char** end;でエラーにならない
はずかC〜(*ノノ

987 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:43:42.60 ID:cYx2D4V+.net]
>>969
補集合でどや顔してるけど、補集合関係ないことは理解できないんだな
関係あるならちゃんと説明できるよね? w

988 名前:デフォルトの名無しさん [2015/08/08(土) 20:45:16.30 ID:Ud96BClW.net]
>>973
高校で習うまで我慢してなさい。中学生。

989 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 20:58:55.89 ID:1hj8NI9z.net]
結局const char**じゃないのはなぜなのかは解答ないのね

990 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:05:28.11 ID:Ud96BClW.net]
constにする事に意味が無いからと答えたが。

991 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:15:13.37 ID:cYx2D4V+.net]
>>974
もう逃げきりを図ろうとしてるのはみえみえ

>> あと、h抜きしない方が玄人っぽいよ
> 自称玄人カッケーっす

ってなってたらこいつどう言うんだろうな w

992 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:21:07.53 ID:1hj8NI9z.net]
const char**にしてもchar**が渡せるから意味がないってのか
じゃあconst char*にしてもchar*が渡せるからそれも意味がないんですね
じゃあ引数につけるconstなんて全て意味がないんですねわかります

993 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:37:14.26 ID:D0x4pWwH.net]
>>978
const char*にキャスト無しでchar*を代入することはC言語でも非合法だからその噛み付き方は無いわ〜

994 名前:979 mailto:sage [2015/08/08(土) 21:39:27.65 ID:D0x4pWwH.net]
反対だったorz、
char*にconst char*を代入するのはC/C++ともにNG
char**にconst char**を代入するのはCだとOK、C++ではNG

995 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 21:44:06.68 ID:Ud96BClW.net]
>>977
補集合習えばそれもわかるようになるよ。



996 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 22:04:53.22 ID:Ud96BClW.net]
>>978
意味ないだろ。
void hoge(const char **p)
{
static const char s[]

997 名前: = "alb";
*p = s;
}
void hage(void)
{
char *p;
hoge(&p);
*p = 0;
}
[]
[ここ壊れてます]

998 名前:!rebuild:age mailto:sage [2015/08/08(土) 22:13:50.40 ID:9YQ92kuf.net]


999 名前:デフォルトの名無しさん mailto:sage [2015/08/08(土) 22:21:53.19 ID:1hj8NI9z.net]
strtolの第2引数にconstが無いのはあってもなくても意味がないからなんかじゃなく
strtolがconstをつけるかどうかを判断する箇所ではないから制約にしていないだけ

第1引数につくconstはstrtolの内部ではポインタ先の実態を変更しないということを示す
strtolの中の操作を制限するという意味になるのでそう実装していることを使用者に示している

第2引数の先頭にconstをつけるかどうかに対応するのは
第1引数に渡される文字列自身がconstなのかどうか
そしてそれはstrtolの関与する部分ではない

>>970のようにconst文字列を渡す前提ならconstがあっても問題ないが
constじゃない文字列を渡して変換できなかった箇所を起点に文字列を変更することも考えられる
するともし第2引数にconstがついていると(やらなくてもコンパイルできるかどうかは置いておいて)constからconstなしへのキャストをすることになる

1000 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 00:33:45.74 ID:ofrSttk1.net]
次スレおね

1001 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 04:54:16.32 ID:ofrSttk1.net]
まだーー

1002 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 05:52:26.39 ID:h6XvpjyR.net]
>>978
あっても無くても意味が無いなんていう事じゃ無い。
constは呼び出し先での制約であり、呼び出し側を制約する事はできない。
ので、意味が無い。

1003 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 06:48:44.91 ID:TarQJqGz.net]
>>981
もうその返ししかできないんだな恥ずかしすぎるわ w

1004 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 07:09:46.99 ID:TarQJqGz.net]
次スレ

C言語なら俺に聞け(入門編)Part 130
peace.2ch.net/test/read.cgi/tech/1439071526/

1005 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 08:32:59.69 ID:i0YjHh3P.net]
const ついてれば、(その関数内で参照先を)書き換えするつもりはないよ とわかるけど
ついてない場合はどっちともとれるから中途半端よねぇ



1006 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 08:44:02.42 ID:uP4RKIW6.net]
>>989
乙乙乙

1007 名前:デフォルトの名無しさん [2015/08/09(日) 09:09:30.47 ID:Mf04DnbC.net]
>>988
補集合理解してれば
>> あと、h抜きしない方が玄人っぽいよ
こんな発言はしないから。キミの妄想は実現しない。
頑張って補集合勉強しろよ。

1008 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:07:05.43 ID:UBu5K04W.net]
高校レベルで学ぶ集合論は集合論のうちに入らぬ、
前提命題
 XはURLをh抜きで書く→Xは素人である ( = ¬((XはURLをh抜きで書く)∧¬(Xは素人) )
から
 XはURLをhを抜かずに書く→Xは玄人である ( = ¬(¬(XはURLをh抜きで書く)∧¬(Xは玄人) )
という命題を導くためには、
 { 素人 } ∩ { 玄人 } = φ (排中立)
が成立せねばならないぬが、{ 素人 } ∩ { 玄人 }が無限集合である以上、
演繹系を無限集合の排中律を認めるやつに固定せねば妥当な演繹にならない

1009 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:10:28.22 ID:TarQJqGz.net]
>>992
>>988
ループつまんね

1010 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:16:29.21 ID:QKRToHAT.net]
out引数の型のconstが意味ないとかいう人の設計はすごい言語に依存しまくったものになってそう

1011 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:18:03.07 ID:UBu5K04W.net]
>>995
C言語でおk

1012 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 10:22:58.14 ID:QKRToHAT.net]
そのうちx86では呼び出し規約が○○だから××という前提
とかアーキテクチャにまで依存し出したりするからそういう考え方は根絶やしにしたい

1013 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 11:18:15.91 ID:9Ej9Po2R.net]
>>993

>>(排中立)→「排中律」
『広辞苑』には、「排中原理」と書いてある。この方がもっと分かりやすいかも

1014 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 11:31:16.30 ID:QKRToHAT.net]
>{ 素人 } ∩ { 玄人 }が無限集合である以上
これは自明なの?

1015 名前:デフォルトの名無しさん mailto:sage [2015/08/09(日) 11:41:47.48 ID:855SMF2a.net]
>>995
> out引数
ようやくそこに言及する人が出てきたか



1016 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

1017 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<242KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef