[過去ログ]
C言語なら俺に聞け 163 (1002レス)
C言語なら俺に聞け 163 http://mevius.5ch.net/test/read.cgi/tech/1721137434/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
227: デフォルトの名無しさん (ワッチョイ 5701-vU+L) [sage] 2024/09/18(水) 09:30:25.30 ID:Qk7JHPx80 専門板によくいるアスペだな http://mevius.5ch.net/test/read.cgi/tech/1721137434/227
228: デフォルトの名無しさん (ワッチョイ ff63-y7MN) [sage] 2024/09/18(水) 10:34:45.37 ID:UYQxUcxO0 225 は釣りでしょう http://mevius.5ch.net/test/read.cgi/tech/1721137434/228
229: 警備員[Lv.2][新芽] (ワッチョイ bfd9-/vo+) [sage] 2024/09/18(水) 13:08:51.24 ID:eTGNACyx0 >>222 sizeof(hage) で配列のサイズが求まるの? と思ったら、「char * (ポインタ)の大きさを返すよ」みたいな警告が @gcc http://mevius.5ch.net/test/read.cgi/tech/1721137434/229
230: デフォルトの名無しさん (ワッチョイ ff63-y7MN) [sage] 2024/09/18(水) 13:15:29.42 ID:UYQxUcxO0 釣りだか天然だか、分からなくなってきた 笑 http://mevius.5ch.net/test/read.cgi/tech/1721137434/230
231: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f732-vU+L) [sage] 2024/09/18(水) 13:35:28.77 ID:td/rS/wM0 今どきの統合開発環境を使ってるなら変数の型くらい見れると思うけれど 古典的な手法としてあえてエラーにしてメッセージを読むという型の確認方法がある。 void foo(char bar[10]) {} int main(void) { int baz = foo; } こんなコードをたとえば gcc でコンパイルを試みると error: initialization of 'int' from 'void (*)(char *)' makes integer from pointer without a cast というエラーになる。 foo の型が void (*)(char *) であるこ
とがわかる。 foo は関数型の式 (関数指示子) なので暗黙に関数ポインタに型変換されているのと bar に相当する箇所の型が char* になってるのがわかる。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/231
232: 警備員[Lv.3][新芽] (ワッチョイ bfa6-/vo+) [sage] 2024/09/18(水) 13:51:08.91 ID:eTGNACyx0 なるほど 勉強になります http://mevius.5ch.net/test/read.cgi/tech/1721137434/232
233: デフォルトの名無しさん (スプッッ Sd3f-2MD7) [] 2024/09/18(水) 14:54:11.13 ID:LEoKOQZWd >>222 >この場合に限らずcでは範囲チェックなどされないでしょ >必要なら自分でチェックするのが原則 > >void aaa(char hage[10],int idx) >{ > if((UINT)idx < sizeof(hage)/sizeof(hage[0])) > printf("%d=%d¥n",idx,hage[idx]); > else > printf("%dは範囲外だhage¥n",idx); >} > >これなら[10]に意味が出る printf("%uz\n", sizeof(hage)/sizeof(hage[0])); の結果ってどんな値
表示されるの? http://mevius.5ch.net/test/read.cgi/tech/1721137434/233
234: デフォルトの名無しさん (スプッッ Sd3f-2MD7) [] 2024/09/18(水) 14:56:10.00 ID:LEoKOQZWd 書式のとのuzじゃなくてzuだっけ?zだけでよかったっけ? ま、主旨はそこじゃないからいっか。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/234
235: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d7e2-6w0d) [sage] 2024/09/18(水) 15:47:33.09 ID:3rwci13t0 >>233 sizeof(char*)/sizeof(char) ということになる。 sizeof(char) は確実に 1 だから結果としては単に char* のバイト数ってことだね。 この場合は「『もし 10 に意味があるとしても』境界チェックはされないことに変わりないのでなんの役にも立ってない。 役に立てるとしたらここまで書かなきゃならない」というのが主旨なのであくまでもしもの話。 実際の値はどうでもよい文脈だと思う。 http://mevius.5ch.net/test/read.cgi/tech/
1721137434/235
236: デフォルトの名無しさん (ワッチョイ d7cd-qbvN) [sage] 2024/09/18(水) 16:33:08.44 ID:wcwImUMc0 >>224 ああそうなの 昔のことだから記憶違いをしてたようだ http://mevius.5ch.net/test/read.cgi/tech/1721137434/236
237: デフォルトの名無しさん (スプッッ Sd3f-2MD7) [] 2024/09/18(水) 16:43:30.74 ID:LEoKOQZWd >>235 >>222 の「これなら[10]に意味が出る」ってのは間違いってことね。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/237
238: デフォルトの名無しさん (ワッチョイ d7cd-qbvN) [sage] 2024/09/18(水) 18:00:34.97 ID:wcwImUMc0 'ここの10は意味ありませんよ' って警告を出してもいいじゃんってことでしょ それなら例えば typedef char HAGE_TBL[10]; void foo(HAGE_TBL hage) {} (毎回10とか書くのは危険なのでこういう使い方が多いと思う) などとした場合に毎回警告が出てうざいことになるんじゃないか http://mevius.5ch.net/test/read.cgi/tech/1721137434/238
239: デフォルトの名無しさん (ワッチョイ ff63-y7MN) [sage] 2024/09/18(水) 18:07:31.49 ID:UYQxUcxO0 警告ならまだ笑っていられるが、 明らかに書いた奴の意図とは違って誤動作してるだろ http://mevius.5ch.net/test/read.cgi/tech/1721137434/239
240: デフォルトの名無しさん (スプッッ Sd3f-2MD7) [] 2024/09/18(水) 18:30:29.69 ID:LEoKOQZWd >>222 のバグを晒すスレはここですか? http://mevius.5ch.net/test/read.cgi/tech/1721137434/240
241: デフォルトの名無しさん (スプッッ Sd3f-2MD7) [] 2024/09/18(水) 18:46:04.44 ID:LEoKOQZWd C言語は難しいな http://mevius.5ch.net/test/read.cgi/tech/1721137434/241
242: デフォルトの名無しさん (ワッチョイ ff63-y7MN) [sage] 2024/09/18(水) 20:53:02.12 ID:UYQxUcxO0 void aaa()の中で、 引数で渡された値が何かを確かめて見ると良い それと、 sizeof(hage)やsizeof(hage[0])の値も プログラム書いた人の意図としては、 sizeof(hage)/sizeof(hage[0])が10になるはずなんだが さてさていくつだろうか? http://mevius.5ch.net/test/read.cgi/tech/1721137434/242
243: デフォルトの名無しさん (ワッチョイ 9f7c-2MD7) [] 2024/09/19(木) 00:15:21.84 ID:5H+5PGV10 もうやめて!>>222 のライフはゼロよ! http://mevius.5ch.net/test/read.cgi/tech/1721137434/243
244: デフォルトの名無しさん (ワッチョイ 9f1e-S785) [sage] 2024/09/19(木) 06:32:15.59 ID:zdFAvN1E0 本人が新たなネタを出してくるんだもん。 >>238 でもわざわざ typedef char HAGE_TBL[10]; ってやっておきながら、なんで void foo(HAGE_TBL hage) なの? 構造体と同じように void foo(HAGE_TBL *hage) ってしてみたら新たな何かが見えてこないかい? http://mevius.5ch.net/test/read.cgi/tech/1721137434/244
245: デフォルトの名無しさん (ブーイモ MMbf-GITO) [sage] 2024/09/19(木) 15:36:15.62 ID:bQAYIDF0M cは洗練された型システム持ってないんだからそんなところ頑張っても無駄なんだよ この悟りに至って始めて脱初級 原則語るならそれからにしてくれ http://mevius.5ch.net/test/read.cgi/tech/1721137434/245
246: デフォルトの名無しさん (ワッチョイ ff63-y7MN) [sage] 2024/09/19(木) 15:40:30.12 ID:cPR7xA8Z0 Cは一部の洗練された型システム持つ言語よりも遙かに自由度が高い そこが分かってようやく中級レベル あとは本人の努力次第で空も飛べるし海も潜れる http://mevius.5ch.net/test/read.cgi/tech/1721137434/246
247: デフォルトの名無しさん (ワッチョイ bfda-GITO) [sage] 2024/09/19(木) 15:50:31.78 ID:c2v//UgT0 おいおい そのぶん危険なんだから持ち上げる部分でもないだろ お前も初級 http://mevius.5ch.net/test/read.cgi/tech/1721137434/247
248: デフォルトの名無しさん (ワッチョイ ff63-y7MN) [sage] 2024/09/19(木) 17:19:57.71 ID:cPR7xA8Z0 ナイフは危険だが有用 不器用者は使わない方が良い http://mevius.5ch.net/test/read.cgi/tech/1721137434/248
249: デフォルトの名無しさん (ワッチョイ b766-qbvN) [sage] 2024/09/19(木) 17:44:18.26 ID:8NYyNXbk0 >>244 typedefは新たな型を作るわけじゃない別名を定義するだけから void foo(char hage[10]) と void foo(HAGE_TBL hage) は同じことだよ http://mevius.5ch.net/test/read.cgi/tech/1721137434/249
250: デフォルトの名無しさん (ワッチョイ bf29-GITO) [sage] 2024/09/19(木) 20:28:27.65 ID:c2v//UgT0 >>248 c言語ってとっくの昔から自由にキャストしまくれる言語じゃないの知ってるか? さぁお前はなんと答える? http://mevius.5ch.net/test/read.cgi/tech/1721137434/250
251: デフォルトの名無しさん (ワッチョイ ff63-y7MN) [sage] 2024/09/19(木) 20:47:13.84 ID:cPR7xA8Z0 そんなに怖がるなよ 食われるわけじゃないんだから http://mevius.5ch.net/test/read.cgi/tech/1721137434/251
252: デフォルトの名無しさん (アウアウエー Sadf-3vlU) [] 2024/09/19(木) 21:11:19.13 ID:/CBFTgYsa >>245 悟った人は全部void* http://mevius.5ch.net/test/read.cgi/tech/1721137434/252
253: デフォルトの名無しさん (ワッチョイ ff4c-KlCL) [] 2024/09/19(木) 21:52:43.48 ID:j90utfqH0 文字も数字も全部intでいいやん http://mevius.5ch.net/test/read.cgi/tech/1721137434/253
254: デフォルトの名無しさん (アウアウエー Sadf-3vlU) [] 2024/09/19(木) 21:56:05.41 ID:/CBFTgYsa getch() は int http://mevius.5ch.net/test/read.cgi/tech/1721137434/254
255: デフォルトの名無しさん (ワッチョイ 9f1e-S785) [sage] 2024/09/20(金) 07:15:20.20 ID:dn4N5ANS0 >>249 それが不満なようだから「HAGE_TBL * にしたら何ができるか考えてみては?」ということでは? http://mevius.5ch.net/test/read.cgi/tech/1721137434/255
256: デフォルトの名無しさん (ササクッテロ Sp47-i443) [sage] 2024/09/24(火) 10:26:30.49 ID:/2yiAcKTp 昔のコンピュータはメモリー少ないから、intで文字持つなんて贅沢だったんだよ http://mevius.5ch.net/test/read.cgi/tech/1721137434/256
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 746 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s