- 1 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 16:45:25 ]
- C言語の入門者向け解説スレです。
・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 9 pc11.2ch.net/test/read.cgi/tech/1173284217/ 過去スレ Part 1 pc8.2ch.net/test/read.cgi/tech/1146700389/ Part 2 pc8.2ch.net/test/read.cgi/tech/1153818463/ Part 3 pc8.2ch.net/test/read.cgi/tech/1160682950/ Part 4 pc8.2ch.net/test/read.cgi/tech/1162999861/ Part 5 pc8.2ch.net/test/read.cgi/tech/1165022193/ Part 6 pc10.2ch.net/test/read.cgi/tech/1167325490/ Part 7 pc10.2ch.net/test/read.cgi/tech/1170064980/ Part 8 pc11.2ch.net/test/read.cgi/tech/1171946674/ 関連スレ C/C++の宿題を片付けます 84代目 pc11.2ch.net/test/read.cgi/tech/1172981618/ くだすれC言語(初心者用) Part.2 pc11.2ch.net/test/read.cgi/tech/1172099763/ 【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131 pc11.2ch.net/test/read.cgi/tech/1170338926/ 【初心者歓迎】C/C++室 Ver.35【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1171888583/ 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
- 281 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 08:37:30 ]
- int my_rand(int seed)
{ srand(seed); return rand(); } で別れていれば自分で実装できるじゃん。なのでやりたければどうぞ。 おれはsrandとrandに別れている方がいいので、 my_randしかなければ困ったことになる。
- 282 名前:276 mailto:sage [2007/04/01(日) 08:52:16 ]
- >>280の回答が親切で比較的納得しやすいと思った。
>>281の回答は疑問に対する答えになっていないのでは…… rand(time(NULL)); とでもすればseedは毎回変わるし、これで良いので は? と思ったのが疑問の出発です。レス見て分かったような分からな いような気分だけど、そのうち実感できるときが来るかもしれない。回 答ありがとうございました。
- 283 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 09:09:18 ]
- >>282
それだと、時間が立たない限り 何度読んでも同じ値しか返ってこないよ
- 284 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 09:23:58 ]
- 同じ種で始めれば同じ乱数列が得られるというのも疑似乱数列の
性質としては重要(再現性)なので、基本となるライブラリにある 関数が毎回勝手に裏で種を変えるような造りだと不便な気がする。 必要なら自分でそこにある素材から作れるわけだし。
- 285 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 09:25:57 ]
- >>282
ん。そうか? 別れていれば ・別れている方がいいよ派 ・毎回seedを渡したいよ派 の両方の要求を満たせるということをかいたつもりなんだが、 わかりづらかったかな…
- 286 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 10:31:11 ]
- 配列でできることってすべてポインタでできるなら配列はいらないと思うんだけど
そこんとこどうよエロイ人
- 287 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 10:31:54 ]
- だから、毎回seedを設定してたら乱数にならないんだってば。
- 288 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 10:49:49 ]
- >>286
配列で出来ることでポインタで出来ないことがあります。 なので配列は必要です。同様にポインタも必要です。
- 289 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:32:58 ]
- >>287
「一連の乱数を得る」という単位での「毎回」と読むのであろう。
- 290 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:52:23 ]
- 毎回seed渡すrandって単なるハッシュ関数だな
- 291 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:53:25 ]
- >>289
一連の乱数を、どうやって一回の関数呼び出しで実現するんだ? 一連の乱数を必要な回数の関数呼び出しで実現するのなら、どうやって連の先頭でのみseedを渡すんだ? それに対する真っ当な回答が、連の先頭でのみsrand()を呼び、以降rand()のみを呼ぶことなんだが。
- 292 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 11:56:01 ]
- >>291
君、読解力ないね。
- 293 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 12:04:14 ]
- >>288
具体的にはどんなことがあるの?
- 294 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 12:33:58 ]
- int a[10];
これをポインタで実現できる?
- 295 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 12:37:10 ]
- >>294
ポインタだけじゃないけど struct linked_list { struct linked_list *next; ... }; を定義してmallocで動的にメモリーを割り当てればおkじゃない?
- 296 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 12:40:16 ]
- >>295
せめて a = malloc(sizeof(int) * 10) を使おうよ。 # より配列らしく使うならallocaにしたいが。
- 297 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 13:51:19 ]
- >>296
alloca? int a[10];がどういう文脈で使われてるか分からんし、 スタックに割り付けることが配列らしく使うことになるとは思えんのだが。 callocなら分からんでもないけど。
- 298 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 14:08:51 ]
- どういう文脈で使われるかわからんのにcalloc()ならなんで「わからんでもない」なんだろ。
- 299 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 14:20:04 ]
- allocaのほうがfreeせずに済む分配列っぽいということか。
ただし、ローカル変数なら。
- 300 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 14:28:18 ]
- callocなら要素サイズと要素個数を別個に指定して割り付けるから配列宣言っぽい、という意味で分からんでもない。
使いどころが限られているallocaよりも、int a[10];がどういう文脈で使われていても、とりあえずcallocはヒープに取れるし。
- 301 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 14:32:14 ]
- >>299
ああ、納得。確かにfreeが不要っていう点ではallocaは配列と共通点を持ってるね。
- 302 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 15:43:45 ]
- >>281
これは seed が更新できないから使い物にならない
- 303 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 15:46:04 ]
- >>294 の意図しているところがワカランのが困る。
どこまで再現して欲しいのか。
- 304 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 15:56:33 ]
- [ ]のオーバーr(ry
- 305 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 16:02:24 ]
- int b[10],*a=b;
- 306 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 16:03:08 ]
- []もオーバーライドできるのか…
- 307 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 16:49:53 ]
- int (*a)[10] = malloc(sizeof (int) * 10);
こういう事がやりたいのか?
- 308 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 17:09:33 ]
- calloc()は0クリアされるという仕様である時点で、ローカル配列とは似ても似つかないのだが。
- 309 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 17:26:43 ]
- それ以前に「要素のサイズと、数を別々に指定できるから、alloca()より配列に近い」ってのも、あれじゃね?
- 310 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 02:59:18 ]
- エイプリルフールも終ったね
ネタは乱数の種と配列をポインタで実現だけか つまらん
- 311 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 03:14:05 ]
- ネタスレじゃないし
- 312 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 11:43:43 ]
- 今年は偽RFC来なかったの?
- 313 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 13:13:23 ]
- 4824
- 314 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 14:15:30 ]
- 手旗信号かワロタ。アブストしか読んでないけど。
- 315 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 16:10:23 ]
- VCExpressでCW_USEDEFAULTが定数として呼び出せないのはなぜなんだぜ?
: error C2664: 'CreateWindowExA' : 4 番目の引数を 'LPCSTR' から 'DWORD' に変換できません。(新しい機能 ; ヘルプを参照) 教えてください。お願いします。
- 316 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 16:17:00 ]
- HWND CreateWindowExA(
DWORD dwExStyle, PCTSTR pszClassName, PCTSTR pszWindowName, DWORD dwStyle, int x, (ry
- 317 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:00:15 ]
- >>316
ズレてたわけですか。 hWnd = CreateWindow(szClassName, "猫でもわかるWindowsプログラミング", //タイトルバーにこの名前が表示されます (LPCSTR)WS_OVERLAPPEDWINDOW, //ウィンドウの種類 CW_USEDEFAULT, //X座標 CW_USEDEFAULT, //Y座標 CW_USEDEFAULT, //幅 CW_USEDEFAULT, //高さ NULL, //親ウィンドウのハンドル、親を作るときはNULL NULL, //メニューハンドル、クラスメニューを使うときはNULL hInst, //インスタンスハンドル NULL); 引用スマソ。EXAではないのですが、EXにして第一引数を加えると : warning C4002: マクロ 'CreateWindowA' に指定された実引数の数が多すぎます。 : error C2664: 'CreateWindowExA' : 2 番目の引数を 'long' から 'LPCSTR' に変換できません。(新しい機能 ; ヘルプを参照) と出ます。ウィンドウクラスはEXなんですが、なぜでしょうか? お願いします。
- 318 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:03:01 ]
- CreateWindowEX': 識別子が見つかりませんでした
違った。こっちがエラーだ
- 319 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:22:31 ]
- 解決しました。誤字があったようで
ありがとうございました。
- 320 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:39:03 ]
- 質問文を作るだけで疑問が解決する事も結構あるのね…
- 321 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:40:40 ]
- 質問しようとして疑問点を整理していくと何が問題なのかわかっちゃうことって結構あるよね
- 322 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:42:39 ]
- それがデバッグじゃね?
- 323 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:54:59 ]
- デバッグというより洗い出しというか整理というか
- 324 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 21:40:54 ]
- 何か格言ぽいのなかったっけ
「人に聞く前に目の前のクマさん人形に説明してみろ」 とかなんとか
- 325 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 21:48:39 ]
- うんk
- 326 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 21:55:25 ]
- コンピュータ系の演習室か何かにゴムのアヒルちゃんがおいてあって、
常駐してる相談員に質問する前にはそのアヒルちゃんに質問してから、 というルールがあるという話をどっかで読んだ。
- 327 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 21:59:54 ]
- 「ゴムのアヒルに質問する」という設定だけなら
「達人プログラマー(The Pragmatic Programmer)」 にあった。 なんでアヒル?
- 328 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 22:04:39 ]
- 「ゴムのアヒル」ってのが小さな子供が遊ぶおもちゃの象徴だからじゃないか?
幼児に馴染みのある人形って日本だと何だろう? アンパンマンとか?
- 329 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 22:05:32 ]
- その辺に置いてあったからじゃね?
別にダースベイダーのボトルキャップでもいいわけで
- 330 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 22:43:13 ]
- ビット列の上位から下位までを逆順にしたい。
例えば、 01100111 -> 11100110 というように。 (0bit目が7bit目に、1bit目が6bit目に…) 何かスマートなやり方はありますか?
- 331 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:02:34 ]
- >>330
LUT
- 332 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:32:00 ]
- これでよくね?
int y = 0; if(x & 1) y |= 128; if(x & 2) y |= 64; if(x & 4) y |= 32; if(x & 8) y |= 16; if(x & 16) y |= 8; if(x & 32) y |= 4; if(x & 64) y |= 2; if(x & 128) y |= 1;
- 333 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:41:31 ]
- 全然スマートじゃないけどな
- 334 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:48:09 ]
- 10 進法で考えたら分かりやすくね?
int a = 1365; int b = 0; while (a>0) { b *= 10; b += a % 10; a /= 10; } これを応用して int a = 1365; int b = 0; while (a>0) { b << 1; b |= a & 1; a >> 1; }
- 335 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:50:36 ]
- スマートって結局主観だろ。
他人のことなんてわからん。 余計なことして気分的にスマートって思いたいだけだろ。
- 336 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:56:24 ]
- それに加え「速いのが良ければ実測しろ」だしな。
- 337 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:56:28 ]
- int test8bit(int x)
{ static BYTE table[16] = {0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15}; int y = table[x>>4] | (table[x&15]<<4); return y; } int test16bit(int x) { int y = test8bit(x>>8) | (test8bit(x&255)<<8); return y; } intは32ビット以上前提で
- 338 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:57:12 ]
- そんな言い訳ばかり並べて逃げるやつからは何も生まれてこないと思うんだ。
- 339 名前:330 mailto:sage [2007/04/02(月) 23:57:19 ]
- LUT作りました。
皆さん、ありがとう。
- 340 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 00:01:40 ]
- まあ>>332をスマートだと思う奴なんていないだろうけどな
- 341 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 00:06:38 ]
- そんなことに時間かけるくらいなら
可読性も速度も無難なのがいい。
- 342 名前:330 mailto:sage [2007/04/03(火) 00:12:13 ]
- 可読性と速度を考えてLUT。
実測はしてないですが。
- 343 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 00:13:58 ]
- まあ、速すぎて調べても誤差程度にしかならんけどね。
- 344 名前:デフォルトの名無しさん [2007/04/03(火) 23:57:14 ]
- 文字列を戻り値に指定するときに
char ch[] = " "; return ch; だとエラーが出て char ch[] = " "; return &ch[0]; だと通ったんですが、戻り値に配列を指定するときは return ch; のように省略して書いてはいけないのでしょうか?
- 345 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:01:54 ]
- 関数内で宣言した変数は静的変数(static付けた奴)以外、
関数を抜けると同時に破棄される。 呼出元に戻ったらもうそんな変数を指すポインタは無意味と化している。 だから前者ではそのことを警告されただけだと思う。 無論後者の書き方をしたところで問題の解決にはなっていない。
- 346 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:20:51 ]
- >>344
エラーがでるでないはともかく関数内で宣言したローカル変数を戻り値にしちゃだめだよぉ return で戻ったときにはchar ch[] はもう亡くなっているだろうから
- 347 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:32:46 ]
- 結論、Cでは文字列を単純には戻り値にはできない。
- 348 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:34:15 ]
- なんでそういう結論になるのか
- 349 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:43:41 ]
- >>348
他の結論になるとでも?
- 350 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:45:26 ]
- 後者は&リテラル返してるじゃん
- 351 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:50:12 ]
- 呼び出し元で確保しておけと。
- 352 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:51:02 ]
- >>344
C言語で関数から文字列を返却したいときは、戻り値にしないで引数で返す つまり、呼び側関数内で配列の領域を確保し、呼ばれる関数に渡す
- 353 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:51:35 ]
- 被ったorz
- 354 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 01:30:59 ]
- 超初心者で申し訳ないんですけど、
コンパイルしようとしたときに、cant open: stdio.hっていうエラーが出るんです。 解説お願いします。
- 355 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 02:15:58 ]
- すいません、自己解決しました。
- 356 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 03:58:31 ]
- >>347は要するにC言語では配列そのものをreturn文で返すことはできない、
ってことだろ。 自動的にポインタに変換されてしまうから。
- 357 名前:デフォルトの名無しさん [2007/04/04(水) 04:33:37 ]
- BinarySearchTreeの勉強をしてるんですが
階層の数はどんな感じで出せばいいですか?
- 358 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 12:04:32 ]
- 350 デフォルトの名無しさん sage 2007/04/04(水) 00:45:26
後者は&リテラル返してるじゃん
- 359 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 12:05:34 ]
- 356 デフォルトの名無しさん sage 2007/04/04(水) 03:58:31
自動的にポインタに変換されてしまうから。
- 360 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 12:07:33 ]
- 358 名前:デフォルトの名無しさん[sage] 投稿日:2007/04/04(水) 12:04:32
350 デフォルトの名無しさん sage 2007/04/04(水) 00:45:26 後者は&リテラル返してるじゃん 359 名前:デフォルトの名無しさん[sage] 投稿日:2007/04/04(水) 12:05:34 356 デフォルトの名無しさん sage 2007/04/04(水) 03:58:31 自動的にポインタに変換されてしまうから。
- 361 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 12:16:40 ]
- 自分で考えろ
- 362 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 12:36:27 ]
- ソケット通信ってchar型以外のデータを送信できるのでしょうか?
構造体でデータをまとめて通信したいんですけど…
- 363 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 12:40:33 ]
- 送信する関数のポインタの型を良く見ろ
- 364 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 13:28:03 ]
- >>362
「ネットワークバイトオーダー」でググるよろし。
- 365 名前:344 [2007/04/04(水) 16:54:10 ]
- ローカル変数だってことすっかり忘れてました…
staticにするか引数に渡すかしないといけなかったんですね。。 皆さん分かりやすい説明ありがとうございました。
- 366 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:19:44 ]
- 前者がリテラルへの参照、後者がリテラルの先頭アドレスを返してる。
char* moji(){ char ch[] = "a"; return ch;//もしくはreturn &ch[0]; } int main(){ char* b=moji(); return 0; } これで、各所にブレークポイント置いて、メモリとレジスタを見てみりゃわかる。 ローカル変数はベースポインタ(EBPレジスタ)からのオフセットで決まるから、 moji()からmain()に戻ってくりゃ、ベースポインタが変わるから、リテラルへの参照chは意味を成さなくなる。 ただし、戻り値(EAPレジスタ)の残骸が残っている場合、一見何事もなく済んでしまう場合もある。 ch[0]というのは、リテラルそのもの、文字がメモリにセメダインで張り付いてるようなもので、値を変えようとすると AccessViolationでOSから怒られる。&ch[0]は参照じゃなく直接リテラルのアドレスを返している。
- 367 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:31:18 ]
- >>366
>リテラル 何か混乱しているようですが、そのコード中の文字列リテラルは "a" のみです。 ch はリテラルではなく、単なる char[2] のローカル変数です。
- 368 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:31:47 ]
- 真っ赤な間違い乙
- 369 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:32:18 ]
- 真っ赤な間違いは>366ね。
- 370 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:43:37 ]
- >>367
だから、chは文字リテラル"a"への参照だよ。 chは、単なるch[2]のローカル変数? だから違うよ、ch[2]の先頭を参照するローカル変数。 参照ってなに?
- 371 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:51:02 ]
- >>367
左辺値と右辺値の区別くらいつけろや
- 372 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:56:47 ]
- >>366
Cならいついかなる場合でも配列chに対して、chと&ch[0]は同じ。 どちらも配列の先頭要素を指すポインタが式の結果として得られる。
- 373 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:57:01 ]
- 安価間違ってない?
- 374 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:58:42 ]
- vipperはカエレ
- 375 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 18:00:17 ]
- 安価とか言うのは高確率で
おっさん
- 376 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 18:06:40 ]
- >配列ch
だからchはアドレス参照だと それと、結果は同じでも過程は違うとはよくいったもんで
- 377 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 18:06:57 ]
- なんか恥ずかしいやつが混じっているなぁ。
char ch[2] = "a"; char foo[2] = {'a', '\0'}; printf("%p, %p\n", ch, foo); を実際にコンパイルして(アセンブル出力を見るか)実行してみれば直ぐに判ることだろうに。
- 378 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 18:08:43 ]
- 行火
- 379 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 18:16:00 ]
- >>377
そのプログラムを実行して結果を見たところで何がわかるのやら
- 380 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 18:19:42 ]
- 何も判らないならプログラミングは止めたほうがいい。
- 381 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 18:25:49 ]
- >>366
ちなみに文字列リテラルそのもの(の先頭要素)を指すポインタを返したければこうする どちらも結果的には同じこと char* moji() { return "a"; } char* moji() { char* ch = "a" return ch; }
|

|