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


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

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



1 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/30(金) 21:01:32.89 ]
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 99
toro.2ch.net/test/read.cgi/tech/1331786500/
★過去スレ
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++の宿題片付けます 156代目
toro.2ch.net/test/read.cgi/tech/1328276597/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

長くなりそうなコードはcodepadに貼り付けてもいいでしょう
codepad.org/

331 名前:デフォルトの名無しさん [2012/04/12(木) 11:41:20.51 ]
>>330
空想論か? それとも RISC の PC が前置だとでも言いたいのか?
ポインタの更新が直列と思い込んでいるほど ++ が不可解に見えるだけだ

332 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 11:54:58.79 ]
一般的に、スタックポインタは前置デクリメントだけどね。
問題は、CPUがどうかじゃないよ。
C独特の手っ取り早く済ませるスタイルも書けないまでも読めないとね。

333 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 12:01:32.60 ]
>>332
順序が逆だ。書けなければ読めない。

334 名前: ◆QZaw55cn4c mailto:sage [2012/04/12(木) 12:31:38.90 ]
>>331
モトローラの石は後置インクリメント、前置デクリメントじゃなかったっけ?

335 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 12:36:33.62 ]
>>332
書かないまでも読めるべき。書けるのは前提。

336 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 12:57:25.44 ]
char * straycat(char * restrict s, const char * restrict append) {
char *r = s;
char *a = "2回○ね〜っ";
for (; *s; ++s);
while (*s++ = *a++);
return r;
}

337 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 13:05:08.66 ]
>>334
たった1つしか知らないくせにモトローラのとかwww

338 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 13:34:45.76 ]
>>312
綺麗に書こうぜ。

void my_strcat(char *dest, char *source)
{
while (*dest) dest++;
for (;;) {
*dest = *source;
if (*dest == '\0')
break;
dest++;
source++
}
}

339 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 13:38:31.94 ]
きたねぇ。



340 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 13:44:13.07 ]
10のなんとか乗を表すのにeとEがありますが
今まで意識せずにeを使ってましたが別にどっちでもいいんですよね?

341 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 13:49:24.33 ]
いいんです。

342 名前:デフォルトの名無しさん [2012/04/12(木) 14:09:01.60 ]
>>332
で、後置はどうなんだ? デクリメントか?
C 独特というのは間違いだぞ

>>337
もう一度聞く、空想論か?

343 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 14:16:38.55 ]
普通、pre-increment/post-decrementだな。

344 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 14:33:17.95 ]
>>318 K

345 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 14:35:16.02 ]
>>318
K&R本の付録A参照マニュアルのA13:文法(295ページからの6ページ)を
なにも見ずに空で書けるようになるまでは、K&R本を捨てない方がいいですよ
とだけ言っておく

346 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 14:37:07.89 ]
そんなもん書くやついねぇ。

347 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:21:55.20 ]
>>342
こいつ、何言ってんの?

348 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:40:26.68 ]
おい 今日からプログラムを始めようと思うんだ
それでC言語やればいいみたいってとこまでわかったんだ
そんでコンパイラってのがいるってのもわかったんだ
俺に最適なコンパイラを教えてくれ
勿論フリーで
俺のスペックは14歳の女子だ

349 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:44:43.59 ]
つくーる いじってろ。



350 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:45:46.82 ]
なんで俺がプログラムに目ざめたかといえばだ
クラスメイトの奴がアプリ開発しやがってなんかちょっと羽振りがよさそうだから羨ましくなったんだ
きいたら半年くらいあればアプリ開発までいけるって言ってたから
俺も頑張ってその金でカラコン買いたいんだ

351 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:48:22.21 ]
>>349
早く教えてくれよ

352 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:50:06.47 ]
カラコン買ってコスプレしてカシャカシャフラッシュを浴びまくりたいんだよ
そんでその写真が大物監督の目にとまって映画デビューするんだ
そのためにはコンパイラは避けては通れないんだ

353 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 16:57:31.62 ]
春だなぁ。
学校にはちゃんと行けよ。

354 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 17:04:18.10 ]
ケチなお前らが教えてくんねんから一応
Visual C++ 2010 Express
をインストール中だ
いいのか?これで?

355 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/12(木) 17:09:37.73 ]
いいよ。

356 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 17:09:58.89 ]
>>354 VC++ Express 2010は遅すぎ。2008の方がいい。
2008のDVDのISOイメージをダウンロードしてこれを使え:
www.slysoft.com/ja/virtual-clonedrive.html

357 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 17:11:32.83 ]
で、どんなもん作りたいんだ?

358 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 17:14:13.08 ]
>>356
マジか さんクソ
今いれたの早速削除するわ
俺のOSはW7だけど大丈夫だよな?

>>357
バカ売れするアイフォンアプリを作りたいんだが
どんなんが売れるんだ?

359 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 17:15:44.05 ]
ちょっと図書館いってくるわ
閉まっちゃうから早くいかないと
C言語の本借りてくるわ
あとラノベと



360 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 17:18:53.16 ]
>>358 iPhoneだったら、MacのiOSかその互換OSが必要だよ。
Visual C++じゃ無理。

361 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 17:21:55.58 ]
ごめん、iOSじゃなくてMac OS Xだった

362 名前:デフォルトの名無しさん [2012/04/12(木) 17:21:57.14 ]
>>358
最後の一行が致命傷だ
提案力ないやつはどんなに頑張っても決して報われない

363 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 17:30:47.28 ]
何が売れるかわかったら、さっさと引きこもる。

364 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/12(木) 17:34:46.47 ]
技術的には割としょーもないもんでもウケてるのあるからな。
売れ筋を見極める目がないようではだめぽ。
つーか、そんなんわかるんだったら自分で作るわ。

365 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 17:52:54.89 ]
携帯のアプリ作りたいならJavaだろ

366 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 17:53:29.40 ]
>>360
マジで?
マックねえとアイフォンアプリ作れんの?
困るじゃねえか
>>362
いいの とりあえずCから学ぶの


367 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 17:59:12.43 ]
WindowsでiPhoneアプリ開発は、ハードル高すぎ。iPhone持ってる?
blog.makotokw.com/2008/07/01/windowscygwiniphoneipod_touch/

368 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:01:27.01 ]
オブジェクティブCってので書けば出来ると思ってたんだが
違うのか?

369 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 18:05:35.25 ]
>>367 どう考えても貴様様にはご無理でしょう。
iPhoneアプリを開発するには、iPhone SDKが必要。
iPhone SDKを動作させるには、Mac OS Xかその互換OSが必要。
初心者は、おとなしくMac買うんだな。



370 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:05:59.51 ]
>>367
アイフォンは持ってるよ 4S
じゃあマックを手に入れるのが先なのか
という事はその金はアンドロイドアプリの開発で稼ぐしかないのかな

371 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:07:45.75 ]
よく考えたらカラコンよりマックのほうが高いじゃねえか

372 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:09:19.27 ]
あれだな。
自宅業務内職のために、まずワープロ買わせる、みたいなビジネスモデルだな。


373 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:13:06.16 ]
詐欺にひっかかった気分だ
ラノベよも

374 名前:デフォルトの名無しさん [2012/04/12(木) 18:15:50.23 ]
何をしたらいいかわからん奴におすすめは脱獄

ひたすら悪さばっかりするクソガキやってると
その頃の生活の知恵が後に糧となっている

375 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:19:54.84 ]
アプリ開発で金稼ぐ自信があるならウィンドウズ向けにアプリ作ってvectorあたりにシェアウェア登録して金儲けしてみろよと何でもしもしならうまくいくと思えるんだ

376 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:22:47.29 ]
一応もしもしのほうが金が取りやすいのは間違いない

377 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:23:05.45 ]
ちょっと調べてみたが
インテルCPU積んでるマックならいいのか?
スペックとかうんこでも

378 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 18:31:04.20 ]
>>377 原理的には可能。多少いらつくと思うけどね。

379 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 18:34:21.08 ]
www.atmarkit.co.jp/fsmart/articles/iphonesdk01/01.html



380 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 18:35:21.29 ]
Mac OS XじゃなくてIntel Macだったようだね。あやふやな知識でごめん。

381 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:37:07.34 ]
そうか
ねだって買ってもらった7のミニノートがあるんだフロンティアの
1年以上使ってないからまずそれを売ろう
あとX箱のソフトとか売って
さらにアイフォン3Gの本体あるから売るわ
そんで中古のマックMINIとか買えばいいな

382 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:37:44.23 ]
>>380
いや 色々ありがとう
パンツのひとつもあげたいくらいだ

383 名前: ◆QZaw55cn4c mailto:sage [2012/04/12(木) 18:38:35.06 ]
>>343
逆じゃない?例:スタックポインタ

384 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:39:14.70 ]
問題はミニノート以外は妹の持ち物という事だが
最近スカイリムを買ってもらって夢中だから気づかないだろう

385 名前:330 mailto:sage [2012/04/12(木) 18:40:09.54 ]
>>342
ええと、なんかがんばってたんだな。

たとえばSPが後置インクリメントである環境を用意するよね。
>>329は、マシン自体がそうなってるから、
それを複雑というのはやめてくれという主張だよね。

これがどれだけおかしな主張だったり例であるかがわからないの?

386 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/04/12(木) 18:40:19.55 ]
Mac OS X 10.5.3以降必須って書いてあるぞ。

387 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:49:36.22 ]
AndroidならLinuxでJavaでタダじゃないの

388 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:50:57.52 ]
何! OSも新しいのがいるのか
2万以下で買えるかな・・・

389 名前:デフォルトの名無しさん [2012/04/12(木) 18:51:17.98 ]
>>385
方言が強くてわからへん、何言うとんねん



390 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 18:56:42.08 ]
>>387
なんかさ アンドロイドのアプリは端末の使用がいっぱいあって開発がめんどくせえんだろ?
どっかの会社が開発コストかかりすぎて儲からんってアンドロイドからは撤退してたじゃん

391 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 20:39:15.74 ]
>>390
あれ、ネイティブコードをばりばりつかってるゲームだからじゃね?

392 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 21:48:04.92 ]
あえてネイティブコードで書かないと性能が出ないってのも困りモンだな

393 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 23:22:15.10 ]
あるshift-jisで書かれたテキストファイルを読み込み、
multibytetocharおよびwidechartomultibyteを使ってutf-8に変換して、
またファイルに書き出してます。

ですが、ファイルの末尾を書き出すと、その末尾の文字は正しく書き出されるのですが、
その後ろに数倍とぐらいゴミみたいなデータが書き込まれてしまいます。
これってどんな原因が考えられるでしょうか

394 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 23:31:27.58 ]
>>393
マニュアル嫁

395 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 23:33:16.69 ]
>>393
余分に書き出している。

396 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 23:33:42.25 ]
> あるshift-jis
shift-jisにはいくつかの種類があんのか?
それとも「shift-jisで書かれたとあるテキストファイル」なのか?
日本語くらいはしっかり使えアホ

> 数倍とぐらいゴミみたいなデータ
そのバイト列は具体的にどんなもんで
いつも同じなのか
それとも違うのか
そんくらい書けよバカ


397 名前:デフォルトの名無しさん [2012/04/12(木) 23:49:04.22 ]
などと意味不明な供述をしており

398 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 00:18:29.96 ]
mallocで領域を確保するといいますが、確保しただけじゃ領域に書き込む事って不可能では?
実際 int *m; m=malloc〜〜だと
ポインで与えられるので、目的の領域に数値を書き込めなくない? と思うのですが。

399 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/13(金) 00:20:07.91 ]
>>398
なんでやね〜ん。

そんなことより、ただの typo だとわかっていても「ポインで与えられる」という言葉が妙にツボった。



400 名前:デフォルトの名無しさん [2012/04/13(金) 00:27:05.52 ]
>>398
確保された領域の記憶保護については未規定ということか
よく思いついたね、でっていう

401 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 01:13:28.26 ]
>>398
この辺のいきさつは規格に何か書いてあったような記憶がある
malloc()で確保した領域に書き込み出来る事が保証されてないのなら
多くのプログラムが書けなくなってしまうからな

402 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 01:30:58.60 ]
なんだここ
随分上から目線のやつがいるんだな
俺よりレベル下のくせによ
まあいい
明日また来るよ

403 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 01:34:20.52 ]
だってchar *t;の場合tの指し示す領域に書き込みするにはstrcpyとか必要でしょう?
int *tの場合は、ポインタ経由で同じ領域に書き込めるのは何故かなと。

404 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 01:39:31.83 ]
>>403
バカ発見

char *p; が既に領域確保済みなら

*p = 'a'; と書き込み可能

あんたが言ってるのは文字列のコピーであって、全く意味が異なる

405 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 02:16:31.68 ]
>>396
> shift-jisにはいくつかの種類があんのか?
まるで「種類なんてないだろ?なんでこう取れる書き方をした?」とでも言いたそうだけど。

406 名前:デフォルトの名無しさん [2012/04/13(金) 02:31:00.75 ]
Cの参考書で、分かり易いものがあったら教えて貰えませんか?

407 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 02:40:39.33 ]
いまどのレベルなの

408 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 02:49:04.32 ]
C実践プログラミング

409 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 13:54:19.18 ]
3000バイトぐらい確保したバッファの末尾部分だけを見たいんですが、
デバッガでブレークポイントで停止しても最初の100バイトぐらいしか見れません
どうにかして末尾部分を見る方法ないっすか?



410 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 14:08:25.68 ]
>>409
デバッガの使い方は他のスレで。
つーか、あんたがどんなデバッガ使っているかわからんのに答えろとでも?

411 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 14:29:08.14 ]
気がきかねーな
デバッグつったらVCしかねーだろ

412 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 14:55:10.94 ]
正解を見つける前に工夫して何とかすることができない限り未来は暗い

413 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 14:58:23.60 ]
工夫する前に過去事例をチャッチャと見つけられない限り未来は暗い


414 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/13(金) 15:01:09.78 ]
>>411
なんでやね〜ん

415 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 15:01:37.08 ]
つーかファイル出力するとか色々やり方はあるだろ

File* fp = fopen("dbg.txt", "wb");
for(int i=0; i<3000; i++)
  fputc(data[i], fp);
fclose(fp);

たった4行でできるのに馬鹿じゃね

416 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 15:12:57.09 ]
バーロー
ファイルに出力するときにもう解読不可能な文字になってるから、
文字コードを見たいんだよ

417 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 15:15:38.41 ]
バイナリエディタで開くかsprintfで16進に変換した跡で出力

418 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 15:25:37.92 ]
fprintf("%02X " , data[i] & 0xff);
こんな感じでいいんじゃね?

419 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 16:24:16.48 ]
>>416
じゃぁ、メモリみても意味なくね?



420 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 16:43:30.70 ]
デバッガ名乗って>409ができないとかあり得ない
VCならウォッチにptr+2900, 100とかデバッグ→ウィンドウ→メモリとか

421 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 16:51:27.43 ]
名乗るほうのデバッガじゃないと思うよ

422 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 16:53:52.86 ]
gdbなら全部見るオプションがあるね

423 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 17:15:03.00 ]
だから、スレ違いなんだから相手にすんなよ。

424 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 17:35:51.40 ]
一週間前に買ったC言語入門編の本を読み終えそうなんだけど
次、どの本読めばええの…

425 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 17:50:53.20 ]
バイナリエディタを忘れてた
ありがと

426 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 18:05:27.15 ]
>424
コンパイラのマニュアル
他人の書いたソース

427 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 18:07:39.42 ]
>>424
本屋でぺらぺらめくって、知ってることと知らないことが書いてある本を探す

428 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 18:14:03.87 ]
>424
PC9801プログラマーズバイブル


429 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 18:28:56.86 ]
C言語を256倍使う本




430 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 18:31:53.31 ]
堀紘一 著
「一番いいのはサラリーマン」
「サラリーマンなんか今すぐやめなさい」

431 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 18:34:43.16 ]
>>424
Effective C++

432 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 18:35:24.54 ]
>>431
いい本だがC++じゃん。

433 名前:406 [2012/04/13(金) 19:34:26.44 ]
>407-408
ありがとうございました。繰り返しとか条件分岐は分かる程度です。

434 名前:424 mailto:sage [2012/04/13(金) 19:50:51.20 ]
ふむ。サンクス
とりあえず本屋よってみる

435 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 19:51:42.87 ]
ゴミデータが書き出される理由がマジわかんね
誰か助けてくれよ

436 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/13(金) 19:54:09.12 ]
>>435
再現可能なコードを提出すること。

437 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 20:17:35.21 ]
末端と思っている箇所が末端として伝わらないファイル書き出しをしてるとエスパー

変換の過程で得られるであろうバイト数(or 文字数)を利用して fwrite() してるのか
\0 終端を期待して fprintf() してるのか

438 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 20:36:07.37 ]
最後はstrlenを使ってバイト数を出して、
fwriteのバイナリモードで書き出してる。
fprintfって\0まで書き出してくれるっていう仕様だっけ?
やってみる。

439 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 20:40:46.24 ]
fprintfで書き出しても一緒だった
じゃあヌル文字の前に何故かゴミが入ってるってことか。
くそっ
UTF-8変換の過程で末尾に変なゴミが入る原因って何だよ!!
末尾以外の文字は完璧に変換できてるっていうのに!!



440 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 20:40:54.21 ]
pとqというリストをもらってpの後ろにqを連結するプログラムを作りたいのですがこれで実行するとpのリストしか表示されません
なぜこれではリストの連結ができないのでしょうか
リストを表示するプログラムはこの中にあるのと同じような条件でやっています。
実行結果は
p= 10 20 30,q= 40 50 というリストがあった場合
10 20 30 と出力されます
struct cell *append(struct cell *p, struct cell *q)
{
struct cell *k, *h;
h=(struct cell *)malloc(sizeof(struct cell));
k=(struct cell *)malloc(sizeof(struct cell));
k=p;
h=k;
while(p!=NULL)
{
printf("%d %d\n",p->value, k->value);
p=p->next;
k=k->next;
}
k=(struct cell *)malloc(sizeof(struct cell));
k=q;
while(q!=NULL)
{
printf("%d %d\n",q->value, k->value);
q=q->next;
k=k->next;
}
return(h);
}

441 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 21:16:45.78 ]

 ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ 

 ★ 本日13日(金)よる10時より 《人権救済機関設置法案反対ツイッターデモ》開催 ★

  ツイッターしている人は、ハッシュタグに#人権救済機関設置法案反対#nhk24をつけて、この法案の
  危険性、抗議の法案などをいっせいに呟きましょう。
  ツイッターと連動している「NEWS WEB24」に取り上げてもらいましょう 。

 ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ 


442 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 21:38:14.71 ]
>>440
リストpの後にqをつなげているように見えないけど?

443 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 21:48:46.55 ]
>>440
こんな感じ?
codepad.org/uvJYomYM

444 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 22:00:27.03 ]
お漏らししてるw

445 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 22:24:20.27 ]
そもそも引数で既存のリストふたつのアドレス受け取ってるのに、
なんであらたにmallocしてるのかがよくわからないんだけど
こんな感じじゃいかんの?
codepad.org/wRssci0L

446 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 22:33:33.53 ]
>>445
うん、それ

447 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 22:42:46.73 ]
>>439
Win32 の WideCharToMultiByte とか MutiByteToWhideChar 使ってるのか?

これの戻り値は終端の \0 を含まない文字数を返すから
文字列として(つまり \0 で終わることを保障するように)扱いたいのならば
必要なバッファの大きさは 戻り値+1 であり
変換前に領域を 0 で埋めるか バッファ[戻り値] = 0 と終端を付加しないと
その後の文字列処理(例えば strlen 等 \0 終端前提の関数)が成立しないぞ

448 名前: ◆QZaw55cn4c mailto:sage [2012/04/13(金) 23:10:35.52 ]
>>447
win32api はそういうのが多いのかな?
*(DWORD *)buff = N;
n = SendMessage(hwndEdit, EM_GETLINE, i, (LPARAM)buff);
InnerBuff[n] = 0;
のセットに気がつくまで苦吟した。

449 名前:デフォルトの名無しさん mailto:sage [2012/04/13(金) 23:23:07.08 ]
>>448
文字を操作するのはほとんどそういうの

所々「文字数」だったり「バイト数」だったりで
動的確保時に要注意の奴があったようななかったような



450 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 01:12:41.72 ]
>>447-449
それやってもダメだった。
なんかゴミが書き出されないときと書き出されるときがあるんだよな。
それぞれ読み込んでるファイルは違う。

コードはこんな感じ

void Write(char *buf,FILE *fp)
{
int nsize;

WCHAR *p16;
char *p8;

nsize= MultiByteToWideChar(CP_ACP,0,(LPCSTR)buf,-1,NULL,NULL);

p16 = new WCHAR[nsize+1];

memset(p16,0,sizeof(nsize+1));

MultiByteToWideChar(CP_ACP,0,(LPCSTR)buf,-1,(LPWSTR)p16,nsize);
nsize=WideCharToMultiByte(CP_UTF8,0,(LPCWSTR)p16,-1,NULL,0,NULL,NULL);
p8=new char[nsize+1];
memset(p8,0,nsize+1);
WideCharToMultiByte(CP_UTF8,0,(LPCWSTR)p16,-1,(LPSTR)p8,nsize,NULL,NULL);
nsize=strlen((char*)p8);
fwrite(p8,nsize,1,fp);
delete [] p16;
delete [] p8;
}

451 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 01:16:44.89 ]
sizeof(nsize+1)はただのnsize+1の間違い
もちろんこれでもだめ。

ゴミが出るときはあるファイルを読みこんで書き出すとゴミが発生する
でも発生しないときのファイルの末尾は、
ゴミが出るときのファイルと一緒で改行コードで終わらせてる

だから何が原因かマジでわからん

452 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 01:18:24.49 ]
24時間経ってようやくコードのお出ましかよ
一緒に出しときゃあ24時間も丸々ムダにせずにすんだのに


453 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 05:31:48.13 ]
> memset(p16,0,sizeof(nsize+1));
ここは
memset(p16,0,sizeof(WCHAR)*(nsize+1));
じゃないと全部ゼロクリアできないんじゃないの?

454 名前:451 mailto:sage [2012/04/14(土) 07:33:59.96 ]
>>453
うん
その通りだ
でもそこ修正してもダメだった。
この関数を呼び出す前の、テンプレートファイルを読み込む部分のコードは、
fp=fopen(TEMPLATE1,"rb");
fseek(fp,0,SEEK_END);
fgetpos(fp,&size);
fseek(fp,0,SEEK_SET);
basic = new char[(int)size];
memset(basic,0,(int)size);
fread(basic,(int)size,1,fp);
fclose(fp);

こんな感じでバッファを確保して、
このバッファをWrite関数に渡してるんだがおかしくないよね?

455 名前:451 mailto:sage [2012/04/14(土) 07:41:26.13 ]
ちなみにこのテンプレートファイルを読み込んで、
そのままUTF-8に変換せずに書き出してもゴミはなかった。
だからテンプレートファイルに最初からゴミが入ってるってことはないと思う。
よって、やっぱりさっきの変換関数のどこかがおかしいんだと思う

456 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 09:46:17.85 ]
一般的にファイルには、終端文字が記録されていないので、
basic = new char[(int)size+1];
memset(basic,0,(int)size+1);
だな。

457 名前:451 mailto:sage [2012/04/14(土) 10:23:43.31 ]
>>456
うおおおおおおおおおおおおおお!!
これだ!
やってみたらゴミ消えたよ!!
マジありがとう!!!
基本のファイル読み込みの時点で間違ってたとは情けない
ご迷惑をおかけしました


458 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 10:30:26.34 ]
ベターCということで以後よろしゅうお願いします。

459 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 12:35:40.25 ]
> 基本のファイル読み込みの時点で間違ってたとは情けない

ださっ




460 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 12:47:54.24 ]
>>459
答えられなかったお前もレベル低いよ

461 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 12:51:31.43 ]
>>456
basic = new char[size + 1];
basic[size] = 0;

462 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 14:10:45.36 ]
>>456
細かいことだけどサイズがわかってるんだからmemset使うのは無駄な処理だね
末尾に'/0'を入れてやるだけでいい

463 名前:デフォルトの名無しさん [2012/04/14(土) 20:19:23.89 ]
細かいことだけどシングルクオートの中に2文字入れると効果は処理系定義だぞ
あんたどこの文化圏の人?

464 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 20:32:37.35 ]
>>463
え・・・ 何・・・?

465 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 21:00:16.79 ]
は?ヌル文字だろ?(威圧)

466 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 21:27:11.53 ]
かみわりだとニャル子さん、さんかれあ、ふぁて

このあたりが再生数多いな

467 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 21:28:31.38 ]
いきなりなんだ
とうとう狂ったか


468 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 22:02:40.50 ]
ダウンロード違法化も決まったと言うのに

469 名前:デフォルトの名無しさん mailto:sage [2012/04/14(土) 23:33:42.95 ]
ふう



470 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 00:20:38.70 ]
むにゃむにゃ
おやすみなさい

471 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 00:47:55.54 ]
AB|C|D
AC|B|D
AD|B|C
A|BC|D
A|BD|C
A|B|CD
異なる4個を区別しない3箱に分けるにはスターリング数で上記のように6通りですがこれを列挙するアルゴリズムを考えてください。
出力は{{1100,0010,0001},{1010,0100,0001},{1001,0100,0010},{1000,0110,0001},{1000,0101,0010},{1000,0100,0011}}
のように2進数4ビット3つ組みで、箱に入れる物のビットが立つようになってると良いです。順番はどうでもいいです。
実際は個数・箱数は入力して可変にしたいです。
2箱ならビット演算余裕で思いついたんですけどね

472 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 01:36:04.47 ]
思いついたの晒せよアホ

473 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 02:04:56.36 ]
codepad.org/4AqJ2d5O
こんなのでいいの?

474 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 02:30:24.01 ]
いいよ

475 名前: ◆st4kIyCS7. mailto:sage [2012/04/15(日) 11:12:18.20 ]
codepad.org/pP8WEFFy
玉の数=箱の数+1で良ければ!

476 名前: ◆st4kIyCS7. mailto:sage [2012/04/15(日) 12:04:04.60 ]
箱の数+1=玉の数の場合、箱の数=m、玉の数=nとすると。
組み合わせの数は、n*(n−1)/2*1 例 4*3/2=6
箱の数+2=玉の数の場合、上にmを掛けた、m*n*(n−1)/2*1 例 3*4*3/2=3*6=18
箱の数+3=玉の数の場合、上にmを掛けた、m*m*n*(n−1)/2*1 例 3*3*4*3/2=3*3*6=54
箱の数+4=玉の数の場合、上にmを掛けた、m*m*m*n*(n−1)/2*1 例 3*3*3*4*3/2=3*3*3*6=162

477 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 13:15:13.51 ]
できたけど codepad って使ったことないんだよな
ちょっと待って

478 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 13:28:09.34 ]
int a[3][4] = {0}; ってできなかったっけ…
codepad でエラー取り切るのむずいもうちょっと待って

479 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 13:34:28.92 ]
codepad.org/jswzTyVE

これでいいのかな。コメントに日本語って使って大丈夫かな?
微妙に C++ 混ざってるけど勘弁して。max / min って C だとどこに入ってたっけ…



480 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/15(日) 13:44:12.45 ]
>>479
意外なことだが C には無い。 (少なくとも C99 には)

索引の当該ページ
uploader.sakura.ne.jp/src/up94166.png

481 名前:C言語初心者 [2012/04/15(日) 15:53:16.31 ]
文字列str中の文字c1を文字c2に置きかえる関数substを作成したのですが、
出力させるとnullとなり、文字列が出力されません。
どこに間違えがあるのでしょうか。
codepad.org/fYMt6DlJ

482 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 15:55:20.62 ]
>>481
subst の型と戻り値

483 名前:C言語初心者 [2012/04/15(日) 16:59:38.68 ]
substをchar型にすればよいのですか??
あと戻り値はどのようにすればうまくいきますか??

484 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 17:24:20.62 ]
char* subst(char *str, char c1, char c2){
char *p = str;
while(*p){
if(*p == c1){
*p = c2;
}
p++;
}

return *str;
}

485 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/15(日) 17:26:30.56 ]
>>484
まちがえてるぞ
return *str;
じゃなくて
return str;

486 名前: ◆QZaw55cn4c mailto:sage [2012/04/15(日) 17:27:56.02 ]
>>481
codepad.org/hPDYENXk

>>484
×return *str;
*str って何?

487 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 17:39:17.76 ]
>>485
見落とした

488 名前:デフォルトの名無しさん [2012/04/15(日) 17:42:37.05 ]
void でええやん無理しないで
(void* はやめれ)

489 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 17:54:45.64 ]
>>479
3の4乗通り全部試してるのか、結構無駄があるな
今日はこれをビット演算に改造して使わしてもらおう
もっと速いの考えた人待ってるよ
ちなみに実行は12玉・3箱くらいが主に



490 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 18:13:55.07 ]
3箱なら、一箱+(一箱+一箱)って考えれば再帰的に解けそうな気がするけどなー

491 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 18:15:39.81 ]
>>478
全部0で初期化される事が規格で保証されているよ
でも、警告出るコンパイラもあるのでmemsetした方が鬱陶しくないと思う

492 名前:デフォルトの名無しさん [2012/04/15(日) 18:33:31.00 ]
>>491
そのコンパイラを窓から投げ捨てるかオプションで黙らせるべき
memset なんか、それこそ保証ないんだから

493 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 18:45:39.85 ]
>>478 >>491
警告を出さないためにはこうじゃないかな。
int a[3][4] = {{0}};

>>492
投げ出す前に正しく書くべきじゃないかな。

494 名前:デフォルトの名無しさん [2012/04/15(日) 18:49:16.21 ]
>>493
「正しい」の定義を聞こうか

495 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 20:22:21.79 ]
>>493
ていうか、{}だけでいいだろ。

「最初の要素を0で、それ以降を0で初期化」
って冗長な表現だと思わないか?

496 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 20:23:05.20 ]
>>495
それも仕様から外れてる

497 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 20:35:52.45 ]
>>496
別にはずれてないだろ・・・

498 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 21:18:11.16 ]
>>497
C++とは違うのだよ


499 名前:479 mailto:sage [2012/04/15(日) 21:49:08.63 ]
>>489
いやそんなに試してないよ

確かに、途中で 「入れてないアイテム数 == 空の箱数」 になれば、後は順番に入れていく1通りが確定するから、
その処理を入れれば、試行じゃなくて純粋に列挙できる…と思う



500 名前:479 mailto:sage [2012/04/15(日) 21:51:12.76 ]
>>489
補足:
現に、1つめのアイテムは、1つめの箱にしか入れてない
また、2つめのアイテムは、1つめまたは2つめの箱にしか入れてない

501 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:27:52.21 ]
UTF-8の文字コードで書かれたファイるがあるんですが、
これをfgetsで読み込んだ場合ちゃんと一行ごとに読んでくれるんですか?

502 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:30:24.75 ]
うん。

503 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:31:03.07 ]
試しゃーいいじゃねーかよ
アホ

504 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:44:12.03 ]
strstrで比較するときはどうなんですか?
これも正しく比較されますか?

505 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:58:26.81 ]
試しゃーいいじゃねーかよ
アホ

506 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 23:59:07.11 ]
今PC壊れてるんでお願いします

507 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 00:00:02.19 ]
直しゃーいいじゃねーかよ
アホ

508 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 00:16:36.71 ]
clってexec-charset相当のオプションはないのかね?

509 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 00:18:23.18 ]
探しゃーいいじゃねーかよ
アホ

こうかな。



510 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 01:04:17.41 ]
まずはそのクソオプションそのまま試したのかよ
アホ

511 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 01:07:33.10 ]
そういえばバカバカ言うツンデレはたくさんいるけど
アホアホ言うツンデレって見たこと無いな・・・
大阪系のツンデレになるのかな

512 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 01:09:55.58 ]
>>511
初代いいんちょの名をほしいままにする東鳩のいいんちょを忘れるとは

513 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:21:24.30 ]
>>511
うん


514 名前:デフォルトの名無しさん [2012/04/16(月) 18:23:11.91 ]
アセンプリでpushって命令あるけど、あれどういう意味?
moveは移動ってわかるんだけど、pushも似たようなんじゃないのですか?
調べてもスタックがどうたらよくわからない。

515 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:26:42.00 ]
>>514
なにもかも分かってない

516 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:27:13.17 ]
牧草を筒の中に入れて固めていた頃があったんだよ
で、固めることをpushって入ってたんだよねー
アメリカの伝統的牧畜の影響

517 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:28:01.48 ]
配列だと文字をstrcpyできないですかね?

char a[3]
a[0]='s';
a[1]='t';
a[2]='u';

char b[2];
b[0]='r';
b[2]='d';

この場合、strcpy(a,b);はエラーですか?


518 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:29:48.84 ]
pushはメモリに数値を書き込むって意味じゃなかったっけ?
それ以外考えられんのだが。

push abc 3

abc番地に3を書き込む。
違うっけ?

519 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:29:50.36 ]
>>517
運がよければ動く
確実にするには文字列の終端が必要



520 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:31:53.75 ]
新卒入社の研修かな

521 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:33:39.56 ]
>>519

char *s;
char *t;

s="good";
t="bad"

strcpy(s,t);だとOK?

配列型文字列はstrcpyダメで、ポインタ型文字列はstrcpyOK?

522 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:34:03.04 ]
内容も間違ってるし、書き込むスレも間違ってる

523 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:36:01.18 ]
>>521
さらにNG度UP!

524 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:36:31.96 ]
utf-8の文字コードで書かれたファイルを読んだ場合、strstrで比較してもちゃんとひっかかりますか?

525 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:43:13.25 ]
うん。

526 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:45:12.26 ]
>>521
アウト

>>524
探すものがasciiのみであるならば。

527 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 18:49:15.59 ]
ワロタwwstrcpy使えないじゃんww

>>521もダメで、>>517もダメなら何が正しいんだよ。

文字列はポインタか配列でしか表現できんだろうに

528 名前:デフォルトの名無しさん [2012/04/16(月) 18:50:28.97 ]
間違えたwww

strcpyじゃなくて

strcmpです。

よろしくお願いします。

529 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 19:07:04.22 ]
>>526
> 探すものがasciiのみであるならば。
ascii範囲外でも問題ないよ



530 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 19:08:49.27 ]
>>526
>>529

ありがとうございます。
ascii範囲外でも問題ないってどういう仕組みなんでしょうか?
勝手に文字コード判断して比較してくれてるんですか?

531 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 19:17:24.72 ]
単にバイナリで比較してるだけ。

532 名前:デフォルトの名無しさん [2012/04/16(月) 19:19:45.77 ]
別に文字コード判断する必要ないだろ

533 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 19:26:28.79 ]
やっぱそういうことか
おk
サンキュ

534 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 19:54:34.48 ]
>>528
天才

535 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 19:56:21.89 ]
>>527=>>517
>>517はまず文字列じゃないのでアウト。
>>521はリテラルに対する書き換えなのでアウト。

536 名前:526 mailto:sage [2012/04/16(月) 19:59:15.10 ]
>>530
双方がちゃんとutf-8なら問題ないです。ごめんなさい。

537 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 21:51:41.50 ]
#include <stdio.h>

int main() {
int i;
double a;

a=0;
for(i=0; i<10; i++) {
a = a + 0.1;
if(a == 0.3)
break;
}
printf("a =%6.3f\n", a);
return 0;
}

このプログラムでa=1.000ってなっちゃうんだけどなんでだろ
a=0.3じゃないの?

538 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 21:56:12.59 ]
a == 0.3が成立しないから。
なぜ成立ししないかは、浮動小数点数 誤差あたりでぐぐってしらべれ

539 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:22:49.88 ]
>>537
初めてCを習ったとき、それ注意されたわ
懐かしい。



540 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:32:44.34 ]
if ( a >= 0.3 )
break;

にでもしとけ


541 名前:デフォルトの名無しさん [2012/04/16(月) 22:55:01.33 ]
書式指定フォーマットの%Xで32ビット分しか表示されないのは仕様ですか?
※VS2010

542 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:58:56.93 ]
仕様です
もっとまともなC99対応コンパイラ使って下さい

543 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:59:28.56 ]
マニュアル読めば書いてあるだろうが

544 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:03:51.89 ]
色つきの文字って配列に入れたりできないのかな?
好きなときに保存した色を簡単にだしたいんだけどどうすればいいんだろう

545 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:06:11.14 ]
>>544
タグ付けとパーサ作ればおk

546 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:37:41.80 ]
パーサってなんだろ
色々調べてみたけどちんぷんかんぷんだから今は諦めます
ありがとう

547 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:51:30.35 ]
色つきの文字を表現する構造体を作って配列にすれば?
文字列としても使いたいなら、文字列と色情報配列を持つ構造体にするとか。

548 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 01:14:18.11 ]
cursesお勧め

549 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 01:33:07.38 ]
printf( "\033[2J" ); /* これまでの画面を消去します。*/
printf( "\033[043m ABC\t" ); /* 背景色黄色で ABC と表示し、タブを表示します。*/
printf( "\033[034m DEG\t" ); /* 青色で DEF と表示し、タブを表示します。*/
printf( "\033[031m GHI\n\n" ); /* 赤色で GHI と表示し、2回改行します。*/



550 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 19:12:19.74 ]
動的に確保したい構造体配列(hoge)のメンバに動的に確保したい構造体配列(sub)を持ったもの
を考えており、main関数で宣言自体をして確保、解放自体は別の関数でするようなものを作ってみたのですが
どうもしっくり来ないんですがもっといい方法はあるのでしょうか。

codepad.org/D6VOZ2X6

551 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 19:17:12.94 ]
>>550 の方法がいいと思うよ

552 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 19:42:18.40 ]
>>550
関数名をalloc_hogeとfree_hogeとかに変えたらいいんじゃないだろうか

553 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 19:50:17.03 ]
どのあたりがしっくりこないんだろ。
確保と解放が完全な対になってないあたり?

554 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 20:14:05.67 ]
>>550
C はそういうものじゃね?
C++ ならもうちょっと「しっくりくる」ように書けそうに思うけど。

555 名前:550 mailto:sage [2012/04/17(火) 20:20:47.88 ]
とりあえずセグメント違反を繰り返しながらここにたどり着いたのでしっくりこない点は

free関数の引数が*hogでいいが確保では**hogにしないといけないのか
確保関数でアドレスの先頭を表すのにhog[0]を使わないといけないのか

です。

556 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 20:30:51.83 ]
>>555
一般的な感覚だと
struct hoge* initial_main(void)
{
struct hoge* hog = malloc(sizeof(struct hoge));
hog->A = malloc(sizeof(struct sub)*(2));
hog->B = malloc(sizeof(struct sub)*(4));
hog->C = malloc(sizeof(struct sub)*(8));
hog->C[5].a = 100;
return hog;
}

と定義しといて、
呼出す側は

hog=initial_main();

じゃないかなぁ。

557 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 20:31:15.83 ]
>>555
こんな感じとか。
名前は、initial_mainじゃなくて create_hogeとかalloc_hogeにしたほうがいいと思うけど

struct hoge* initial_main()
{
struct hoge* hog;
hog = malloc(sizeof(struct hoge));
if(hog){
hog->A = hog->B = hog->C = 0;
hog->A = malloc(sizeof(struct sub)*(2));
hog->B = malloc(sizeof(struct sub)*(4));
hog->C = malloc(sizeof(struct sub)*(8));
if(hog->C){
hog->C[5].a = 100;
}
}
return hog;
}

558 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 20:34:55.46 ]
>>557
確かに initial って名前だと確保とは別っていう印象を受けるね。
C++ から用語を取って construct でもいいかも。

559 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 20:37:32.06 ]
基本どおりに 〜〜alloc と 〜〜free でいいだろ



560 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 20:43:32.00 ]
>>556,557
ありがとうございます。名前はわかりやすくしときます。

struct hoge* initial_main(void){ }
ような使い方を知りませんでした。
こっちのほうがぱっと見わかりやすいです。

561 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 21:05:40.25 ]
>>560
mallocとかと変わらんよ。

562 名前:デフォルトの名無しさん [2012/04/17(火) 21:50:02.50 ]
「malloc_なんたら」を C++ では作りやすくしてくれてるだけ
construct はやだな、extern "C" したときのうんこ臭が耐えがたい

563 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 21:52:09.11 ]
なんでC++?

564 名前:デフォルトの名無しさん [2012/04/17(火) 22:12:25.72 ]
あ、隔離する気ならノープロブレム

565 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 22:50:14.48 ]
>>557
> create_hogeとかalloc_hogeにしたほうがいいと思うけど
create,alloc,init(ialize),newなどは好みだけど
hoge_createやhoge_allocのほうがいいと思うな。

566 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 22:52:23.06 ]
create_hoge = hogeを作れ
hoge_create = hogeが作る

567 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 22:59:51.50 ]
合成語として考えるなら hogecreate でもおかしな順序ではないよ。
伝統的には create_hoge の方が主流に思えるのは確かだけど…。

568 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:01:43.59 ]
めんどくせぇからnewつかえるのに移れよ

569 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:04:43.68 ]
namespace 的な考え方すりゃ接頭辞を共通にしたほうが分かりやすい



570 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 23:06:34.62 ]
>>565
俺の好みでは確保したメモリの構造を見せる場合には alloc と free で
ハンドルとして扱ってもらう場合には create と close って使い分けな感じ。

571 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:06:39.12 ]
うん

572 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:08:09.28 ]
>>567
gtk_init
Py_Initialize
lua_open
SDL_Init

573 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 23:10:48.08 ]
>>572
そのあたりは API としての性格をもったものだから区別が必要じゃないかなぁ。

574 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:14:23.02 ]
allocateとinitializeをallocate関数でやるのはどうかと思うの。

575 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:27:45.93 ]
>>573
じゃぁ
組み込みではなく生成したインターフェースが
NAME_newな形になるCSTLはどう?

create_hoge
より
hoge_create
のほうが扱いやすいと思うよ
補完しやすいし。

576 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:32:59.54 ]
C++じゃ
 オブジェクト.メソッド
なんだが、お前らオブジェクト指向言語使わんの?

577 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:37:05.61 ]
どーせ ファクトリ.create_hoge vs ファクトリ.hoge_create になるよ

578 名前:デフォルトの名無しさん mailto:sage [2012/04/17(火) 23:37:50.58 ]
>>576
ンなの聞いてねーよks
スレタイすらも読めないのかよ池沼
ヒャッペン音読して出直せバカ

579 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 23:41:04.09 ]
>>575
マクロを使って生成しているとは言え、それも CSTL というライブラリが提供している API っていう気もする。
ただ、いずれにせよ上述の「主流に思える」というのはそうでもないかな、という気がしてきた。



580 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/17(火) 23:58:47.15 ]
>>575
補完しやすいというのは疑問があるぞ。 構造体とそれに対する操作の組を名前にするわけだろ。
だとすると hoge_ まで入力したときの候補は create_ まで入力した候補より分量が多くなる。
補完候補は少ない方が良いと考えると create_hoge の方が補完しやすいと言えないか?

581 名前:デフォルトの名無しさん [2012/04/18(水) 00:19:00.97 ]
個人的にgimpソースハックしたときに、関数名の冗長さには苦労させられたわ
GtkWidget *scale;
scale = gimp_prop_spin_scale_new (config, "brush-size", _("Size"), 0.01, 1.0, 2);
gimp_spin_scale_set_scale_limits (GIMP_SPIN_SCALE (scale), 1.0, 1000.0);
gimp_spin_scale_set_log_mode (GIMP_SPIN_SCALE (scale), TRUE);

終始こんな調子の長い名前で変数や関数が羅列されてる。
処理的には大して高度なことしてないのに、パッチ当てるべき箇所を探すだけでも、妙に疲れる。

経験的実感として、全体が長い名前ばかりなコードは、明らかによみずらい。妙な疲労感を伴う気がするわ。

関数は gmp_set_scale() や gmp_new_scale() 程度の10文字程度の長さが最も読みやすいと経験的に感じる。これ以上長いと短期記憶を余計に消費して疲れるし、これ以上短いと意味が不明で疲れる。

582 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 01:10:33.43 ]
そしてその命名ルールを守ってもGIMPほどのモノは作れないという不思議w


583 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 01:32:30.77 ]
>>579
単なるモジュールプレフィクスだよ。
関数名が被らんようにと言うのが主目的で、操作対象を表すわけじゃない。
せいぜいどのモジュールに属する関数かという程度。

モジュール外部と結合する意味でAPI的と言えるだろうけど、
CSTLが提供している云々は関係ないな。
外部結合だから出力の命名規則がそうなってるだけだ。

なんで、意味合いが違うのは同意なんだけど、Cの世界じゃ
モジュールに分けたらプレフィクス付ける方が主流だと思うよ。

584 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 02:07:17.52 ]
>>580
ない。

585 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/04/18(水) 13:09:12.05 ]
>>583
俺は API 的というのを広い範囲で、外に公開する名前くらいの意味で言ってた。
言葉の使い方を除けばだいたい認識は一致していると思う。

586 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 20:03:47.61 ]
>>582
gimpって規模は異常に巨大だけど、徹底的にコードを単純な書式にして、モジュール化も徹底してるおかげで
局所単位でいぢれるし、局所単位で見ればそれほど超高度なことをしてる箇所は少ないので、意外と改造できるのでハック初心者の練習におすすめ。

とにかくコード書式が、これでもかというほど単純なように徹底されてる。
関数中で使う変数の宣言は、必ず関数の先頭位置で行うようになってるし、
GtkWidget *scale;
scale = gimp_prop_spin_scale_new ();

GtkWidget *scale = gimp_prop_spin_scale_new ();
と書くことすらしない。徹底的に一行の情報量を減らすというアプローチで書かれてる。
一見すると過剰な程にコードが簡易化されてるが、そのおかげで、所見でもある程度読める。ただし全体の行数は膨大。

587 名前: ◆QZaw55cn4c mailto:sage [2012/04/18(水) 21:38:55.50 ]
>>586
>GtkWidget *scale;
>scale = gimp_prop_spin_scale_new ();
>を
>GtkWidget *scale = gimp_prop_spin_scale_new ();
>と書くことすらしない。

auto変数の初期化すら嫌いな -pedantic な人たちなのでしょう、多分。

588 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 21:46:14.13 ]
GTK自体の仕様がよくわからん…

589 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 21:49:24.30 ]
っていうか
関数スコープの途中で変数宣言できるようになったのってC++が出てきてからじゃね?

1行の情報量を減らすってのはなるほどなぁとは思う。




590 名前:デフォルトの名無しさん [2012/04/18(水) 22:12:00.57 ]
関数スコープとか・・・またまた香ばしいw

591 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:13:38.56 ]
ブロックの先頭以外、でいいのにね

592 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:24:29.30 ]
関数スコープは荒れる


593 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:36:08.96 ]
うん

594 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 23:32:26.55 ]
関数スコープの宿命だな

595 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 23:33:08.58 ]
関数スコープの宿命はよ


596 名前:デフォルトの名無しさん [2012/04/19(木) 00:02:06.72 ]
言うなら PG の、C 使いの宿命を言ってみな

597 名前:デフォルトの名無しさん [2012/04/19(木) 00:45:13.12 ]
お前が関数ポインタの宿命を言ったらな。

598 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 00:51:23.99 ]
C++のソースがCのソースに変換されたのを見て、ショックを受けた、口

599 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 00:54:48.71 ]
C++のtry-catch構文って、Cのソースに変換すると、どんな記述になりますか?



600 名前:589 mailto:sage [2012/04/19(木) 00:57:41.83 ]
catch, finallyブロックのアドレスを順番にスタックに積んでいって
割り込みハンドラーが呼ばれたら順番にそれを呼べば良いんじゃね?

601 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 00:58:47.42 ]
無理じゃね

602 名前: ◆QZaw55cn4c mailto:sage [2012/04/19(木) 01:02:45.86 ]
>>599
www.nurs.or.jp/~sug/soft/super/longjmp.htm

603 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 01:04:11.92 ]
関数ポインタならできるんじゃね?


604 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 01:04:55.24 ]
>>600 >>602 情報どうもです、結構複雑になるんですね

605 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 01:30:15.28 ]
前処理におけるエラーについての質問です。

#if (TESTDEF == 1)
aaa();
#else
bbb();
#endif

上の例では TESTDEF が 1 だったら、aaa() を実行して、
そうでない値のときには bbb() を実行してくれることを期待して記述し、そのように動作します。

しかし TESTDEF が未定義の場合にも bbb(); が実行されてしまいました。
てっきり未定義エラーのようなものが発生すると思ったので驚きました。

上記のようなことをする場合に、
TESTDEF が未定義である場合にコンパイルエラーとする方法はありませんでしょうか?


606 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 01:33:19.91 ]
#if (ISSET_TESTDEF == 1)
ccc();
#else
ddd();
#endif

なるプリプロセッサを延々と書き連ねる


607 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 01:35:44.19 ]
>>605
#errorを使う。
codepad.org/YkpizD6p

608 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 02:15:29.40 ]
>>606-607
やはり前処理1行だけで判断させてエラーにするのは難しそうですね。
>>607のコードのやりかたで自分でエラー行を書く方法で考えてみます。

ありがとうございました。


609 名前:デフォルトの名無しさん [2012/04/19(木) 02:38:18.42 ]
ふざけた野郎だな。



610 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 03:05:07.76 ]
>>606がだよな。いみわからんし

611 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 03:28:31.23 ]
#ifdef TESTDEF
#if (TESTDEF == 1)
aaa();
#else
bbb();
#endif
#endif

612 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 04:13:03.33 ]
プリプロセッサには elif 構文あるんだけどな

613 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 04:44:52.45 ]
この時どうするかいい方法が思い浮かばんかった。

#include <stdio.h>

#define TESTDEF

void aaa(void)
{
fprintf(stdout, "aaa\n");
}

void bbb(void)
{
fprintf(stdout, "bbb\n");
}

int main(void)
{
#ifndef TESTDEF
#error "not defined TESTDEF."
#elif TESTDEF == 1
aaa();
#else
bbb();
#endif
return 0;
}


614 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 04:59:40.34 ]
mfcなんですが、何故か?値が代入されません

for ( i=0; i<opetbl.recv_len; i++ ){
recv_dt.data[i] = (unsigned char)opetbl.recv_data[i];


と言う文が有ったのですが・・・
同じ様に・・・

for ( i=0; i<opetbl.recv_len; i++ ){
recv_dt.data[i] = (unsigned char)opetbl.recv_data[i];

dainyuu_data[i] = (unsigned char)opetbl.recv_data[i];



615 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 05:00:01.66 ]
と、入れてみました。上の方は値がちゃんと代入されるのですが
同じ事をやっている下は代入されません・・・

変数の宣言は、グローバル変数で宣言しました

int dainyuu_data[RECV_LENG];

一方、値が代入される変数は、
union を使い、やっています。

union U_recv_dt {
unsigned char data[RECV_LENG];
};

メモリの設定とか、必要なのでしょうか?

616 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 05:15:43.14 ]
>一方、値が代入される変数は、
recv_dt のこと?

dainyuu_data は int の配列
recv_dt は unsigned char の配列

代入されているかの検証で
元データを文字列と期待し printf にて先頭アドレスを渡したとすると、異なる出力になるのは当然だと思うが
配列の index 総なめで、個々に出力してみたの? (printf("%d\n", daynyuu_data[i] ってこと)

617 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 05:50:29.80 ]
fprintf(stderr, "dainyuu_data = %p\n", dainyuu_data);
で代入時、参照時にdainyuu_dataのaddress確認してみたら?
異なると思うよ。

618 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 06:06:59.39 ]
>>616
>>617
有り難うございます。

>dainyuu_data は int の配列
recv_dt は unsigned char の配列

unsigned char の配列でも試してみましたが、駄目でした。

>総なめで、個々に出力してみたの? (printf("%d\n", daynyuu_data[i] ってこと)

デバグモードのブレークポイントで配列の中を確認しました。
入っていない様です、また画面に表示も出ません(値は0です)

返信有り難う御座います・・・ 
疲れたので寝ます・・・

619 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 07:04:42.88 ]
おやすみ、ムーニーマン



620 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 10:10:58.61 ]
下の代入文は本当にfor文の中に入ってるの?

621 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 10:45:52.19 ]
デバッガ使ってて分からんぐらいだから、他のスレッドにリセットされたことも考慮しないとだめかもね

622 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 10:59:41.13 ]
うむ

623 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 11:13:08.28 ]
グローバル以外にもdainyuu_dataという名前の配列があるとか。

624 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 19:20:12.59 ]
そうだよ

625 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 22:17:47.25 ]
次の方どぞ

626 名前:デフォルトの名無しさん [2012/04/19(木) 23:03:21.29 ]
宿命はよ

627 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 17:55:05.45 ]
C++の基本〜標準を学校で学びましたが
C言語を独学で勉強できますか?

628 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 19:03:38.06 ]

                       できます。具体的には以下の通りです。

              「C実践プログラミング」 でCの文法、make、gdbなど、基礎を習得
                                ↓
     「C言語ポインタ完全制覇」 or 「秘伝C言語問答 ポインタ編」 でポインタに関して完全理解する
                                ↓
「エキスパートCプログラミング―知られざるCの深層」 でスタック、ヒープ、リンカ、ローダなど周辺知識を習得
                                ↓
      「C言語によるオブジェクト指向プログラミング入門」 で大規模プログラムの作り方を学ぶ
                                ↓
           「C言語デバッグ完全解説」でバグに強いプログラムの記述法をマスター
                                ↓
        「Code Complete(上)(下)」でより良いC言語プログラムとは何かを各人で考察する
                                ↓
                              神の誕生

629 名前:デフォルトの名無しさん [2012/04/20(金) 21:55:24.56 ]
-神の誕生
+土方の誕生



630 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:39:06.55 ]
ゲーム作るには最低どのくらいの知識が必要なのよ

631 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:44:57.75 ]
歩く前に歩くことをやめる人間には無理

632 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:45:39.31 ]
何の知識だよ

633 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:49:01.61 ]
最低でも四元数
あとはUI関連の古典 誰のためのデザイン でも読んどけ

プログラム知識だけで面白可笑しく作れるとか思ったら
そいつはアホ


634 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:51:05.14 ]
誰がゲームを面白おかしく作れるための知識がほしいって書いてんの?

635 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:53:06.67 ]
面白くもおかしくもない一流のクソゲーでも作りたいのかwww
いやそういう知識なら俺は知らんよw


636 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 22:58:50.78 ]
ゲーム作るのには四元数は必須だよな。俺もそう思う。
どんなゲームでも絶対使うもん。マインスイーパとか。

637 名前:デフォルトの名無しさん [2012/04/20(金) 22:59:23.41 ]
>>630
それはおまえさん自身が決めることだ

少しでもマシンの動かし方を憶えたら
こんなことできないか? とアイディアから始めるんだ

必要な知識はそれによって決まる

ゲームプログラマってのはコンピュータのプロではなく
遊びのプロであることを片時たりとも忘れてはならない

638 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:06:59.79 ]
そんなもんディレクターとかデザイナーの話だろ
プログラマとは別

639 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:08:07.03 ]
質問者はスレチともどうとも取れない感じだったのに、回答者が全力でスレチってどういうことなん。
しかも超偉そう。



640 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:10:55.97 ]
ゲームプログラマは、無能な企画の脳内にあるイメージを口頭でのわずかな情報で再現する能力が必要

641 名前:デフォルトの名無しさん [2012/04/20(金) 23:18:05.79 ]
ディレクタやデザイナになりたければ
そこそこの組織に入るにはどうするかが問題となる

で、面接でくだんの質問をしたらまず祈られるだろう

スレチとか言っている連中はそこがわかってない
内容的に1人で勝負できる人がスポンサーをつのる様相がわかってない

642 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:23:36.78 ]
ああごめん。たしかに俺わかってなかった。
スレチじゃなくて板違いだったね…

643 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:30:38.38 ]
(白黒4階調の初代ゲームボーイで)フルカラー出してくれ。

と企画から言われた時は、ハードウェアのマニュアルをそいつに投げ付けた事は良い思い出。

644 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:40:30.49 ]
インベーダーの仕様や白黒TV用カラーガラスでも投げ返されると面白いんだがな

645 名前:デフォルトの名無しさん [2012/04/20(金) 23:41:01.13 ]
色のにじみでハードの定義にない色を出していたのも良い思い出
通信路の定義の違いまで何とかできてしまったのは無知のおかげで今の俺なら発狂してた
そこそこの組織にいる人ならハード担当と癒着でない仲の良さを大事にする

646 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:43:00.93 ]
>>645
その時代の話、結構興味あるので、酉とかつけてもらえますか?

647 名前:デフォルトの名無しさん [2012/04/20(金) 23:44:55.59 ]
さんずいがねえなあ

648 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:50:13.31 ]
じゃあ酒あげるんで、レスの1行目に
〜おじさんの楽しい昔話〜
ってつけるようにしてもらえませんか

649 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:51:23.08 ]
〜おじさんの楽しい昔話〜(板違いじゃないよ!)
でもいいです。あと、もしおばさんだったらごめんなさい。その場合はおばさんと表記を改めていただけるようお願いします。



650 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:52:54.49 ]
ゲ板にでもスレ立てたら?

651 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 23:55:05.77 ]
ほんとだよな。

652 名前:デフォルトの名無しさん [2012/04/20(金) 23:58:48.56 ]
そりゃごっつぁん、でマダー?tntn
1行目がどうのって意味わかんねえし
セクハラ野郎は嫌いだぜ

653 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 00:03:29.27 ]
レスを抽出してまとめて読めるからだよ

654 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 00:04:05.35 ]
興味ない人はNG設定できる副作用もあるよ。

655 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 02:09:25.93 ]
>>628
ありがとうございます

656 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 02:09:28.86 ]
MPIってモッピーと読むと言われたが冗談ですよね?

657 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 02:15:53.72 ]
>>655
それコピペ






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

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

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