トップページ⇒tech
1001コメント269KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/08/31(水) 18:45:07.04
C言語の*入門者*向け解説スレッドです。

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

長くなりそうなコードはcodepadに貼り付けてもいいでしょう
http://codepad.org/
0153デフォルトの名無しさん2011/09/03(土) 21:34:34.26
void ret_test(void)
{
return;
}
0154デフォルトの名無しさん2011/09/03(土) 21:41:08.41
void TestMem(void)
{

char *Buf=(char *)malloc(1024*16);
if(Buf==NULL) {
return ;
}
...
}
0155デフォルトの名無しさん2011/09/03(土) 21:48:59.48
毎回同じことをする固定処理で失敗しても呼び出し元に報告する必要がない処理
0156デフォルトの名無しさん2011/09/03(土) 23:58:09.84
C言語の質問です。
今C言語の基礎を終わせ、DXライブラリを今から勉強してゲームを作りたいと思っています。
もし完成したらベクター等で配布しようと思っているんですが、
やはりCで書いたプログラムは環境が整ってないと起動することはできないのでしょうか?
もし配布した後に起動できない、のようになったらちょっとまずいと思うんですが……
0157デフォルトの名無しさん2011/09/04(日) 00:00:29.11
VisualC++でコンパイルしたならvc…….dllがないと動かないな
0158デフォルトの名無しさん2011/09/04(日) 00:18:55.28
ごめんなさい、初心者すぎてわかりません。
そのvc…….dllというのは用意するのは簡単ですか?
0159デフォルトの名無しさん2011/09/04(日) 03:28:10.74
>>152
うほっ!
ご指摘有難うございます。
再確認したらそうでしたね
あの単語が脳内で理解されるまで時間がかかってしまいました…

>>154,155が意味不明だけど
おいおい理解出来る様になりたいです

皆さん有難うございます
精進してきまする
0160デフォルトの名無しさん2011/09/04(日) 08:55:47.10
>>156
個人でゲームを作るならCなんて選択はマゾ以外の何物でもないと思う。

ゲーム用によく使われているスクリプト言語の方が良いんじゃね?
最近だったらPythonやLuaとか。
01611562011/09/04(日) 09:16:42.28
>>160
ありがとうございます。
授業で習ったことがあったのでCが一番楽だと思ったんですが、検討してみます。
0162デフォルトの名無しさん2011/09/04(日) 15:02:26.06
CでもC++でもいいんですが
NIC2枚差したWindowsPCをブリッジのような形にして、
指定したパケットだけ落とすプログラムって作成可能でしょうか?

Linuxであればできますが、Windowsでの作り方が分からず困っています。

図
(NIC(1),NIC(2)をブリッジし、共に192.168.1.0ネットワーク)


NIC(1)
_____|____
|windowsPC| ×ここでHTTPパケットを落とす
NIC(2)|
|
|↑HTTPパケット
0163デフォルトの名無しさん2011/09/04(日) 15:09:40.97
wincap?
0164デフォルトの名無しさん2011/09/04(日) 15:10:04.78
>>162
よく分からんので検索ワードだけ
パケットフィルタリング C言語
0165デフォルトの名無しさん2011/09/04(日) 15:13:52.10
一度、C言語を知ってしまうと、CGIとかを作るときにも、
他の言語を覚えなくても、C言語でやってしまえばいいと
思うんだけど、どうかな?
0166デフォルトの名無しさん2011/09/04(日) 15:18:58.73
全部ハードウェアで実現すればいいよ
0167デフォルトの名無しさん2011/09/04(日) 15:24:28.86
>>162

ttp://www.atmarkit.co.jp/fwin2k/win2ktips/450ipforw/ipforw.html
0168デフォルトの名無しさん2011/09/04(日) 15:46:36.36
>>165
文字解析なんぞは他の言語がうらやましくもある
0169デフォルトの名無しさん2011/09/04(日) 16:42:56.60
winsock2から生IPパケット吐ける様になったからIPだけなら直ぐに作れるんじゃないかな
0170デフォルトの名無しさん2011/09/04(日) 18:08:28.26
ヘリコプターで近所のコンビニにポテチを買いに行くぐらい無駄な行為
0171デフォルトの名無しさん2011/09/04(日) 18:25:09.05
>>170
アメリカだと、ありそうな話
0172デフォルトの名無しさん2011/09/04(日) 18:36:04.31
ねーよ
0173デフォルトの名無しさん2011/09/04(日) 19:10:07.31
構造体の参照渡しが上手く出来ません。
ミスの指摘をお願い出来ますか

「ヘッダファイル内」
void cursor(struct button *btn);

「main関数内」
struct button{
int buttonX;
int buttonY;
}btn,*pbtn;

void cursor(struct button pbtn);

error:型"button *"の引数は型"button *"のパラメータと互換性がありません。
01741732011/09/04(日) 19:14:05.82
172修正します

「ヘッダファイル内」
void cursor(struct button *btn);

「main関数内」
struct button{
int buttonX;
int buttonY;
}btn,*pbtn;

pbtn = &btn;

cursor(pbtn);

error:型"button *"の引数は型"button *"のパラメータと互換性がありません。
0175デフォルトの名無しさん2011/09/04(日) 19:23:24.86
ヘッダ内のstruct buttonとmain関数内のstruct buttonは別物なんでは
ヘッダの頭の辺りにstruct buttonの定義を書くといいと思う

よくわからないけど
0176デフォルトの名無しさん2011/09/04(日) 19:30:23.71
「ヘッダファイル内」
typedef struct{
int buttonX;
int buttonY;
} button;

void cursor(button *btn);

「main関数内」
button btn;
button * pbtn;

pbtn = &btn;

cursor(pbtn);

これじゃだめ?
0177デフォルトの名無しさん2011/09/04(日) 19:32:38.11
もしかしてヘッダファイルの struct button *btn って int * にみなされちゃう系?
01781732011/09/04(日) 19:36:34.09
>>175,176
アドバイスどうも有難うございました。今コンパイル通りました。
えーと、つまりヘッダファイルで関数宣言する前に構造体を書いてなかったからエラー出てた、ってことなんでしょうかね
0179デフォルトの名無しさん2011/09/04(日) 21:56:06.34
pbtnって省略できるんじゃね?
因みにpbtnの役割ってなんなのかな?
コードは書けば書くほどバグが入り込むから一文字でも少なく書かないと。
可読性を損なう時は多少長くてもしょうがないと思うけど。

「main関数内」
button btn;
// button * pbtn;

//pbtn = &btn;

cursor(&btn);
0180デフォルトの名無しさん2011/09/05(月) 00:29:23.39
>>168
文字の扱いはたしかにCは苦手っぽいね。
かといって、それだけのために他の言語を覚えるのは
結構かったるい感じだね
0181デフォルトの名無しさん2011/09/05(月) 01:00:12.43
正規表現が標準で実装されてたら助かるんだけどな
まぁテキストに対して複雑な処理をするなら当時だと
awkでも使っとけってことだったのか
0182デフォルトの名無しさん2011/09/05(月) 01:34:13.71
Cにしてみれば文字なんていうものはないんだよね
charという型名のせいで勘違いしやすいけど
0183デフォルトの名無しさん2011/09/05(月) 01:54:07.30
それは勘違いだとおもう
0184デフォルトの名無しさん2011/09/05(月) 04:01:20.68
>>180
漢字とか扱うとCなんて使ってられない。
他の言語覚えた方がずっと近道。
0185デフォルトの名無しさん2011/09/05(月) 07:52:58.62
ま、ライブラリに丸投げすれば一緒だけどな
0186デフォルトの名無しさん2011/09/05(月) 08:12:08.96
尻から目が出た!
0187デフォルトの名無しさん2011/09/05(月) 09:30:21.37
VCが変数名に漢字使えてわらた
使い道あるかは知らん
0188デフォルトの名無しさん2011/09/05(月) 09:51:35.90
CでTDDしている人いますか?
なにかツールを使っているなら、お勧めを教えてください
0189デフォルトの名無しさん2011/09/05(月) 10:23:44.70
ソースコード読んでて関数の定義部分を確認したい場合に
タグジャンプを使わずに一旦関数名でプロジェクトファイル全体をgrepして
関数定義の部分を目で確かめて表示させるやつってなんなのなんでタグジャンプ使わないの馬鹿なの
0190デフォルトの名無しさん2011/09/05(月) 15:10:41.81
>>189
タグジャンプを知らないか慣れてないか信用できないのだろ。
0191デフォルトの名無しさん2011/09/05(月) 17:35:43.75
「まだそんなツール使ってるの?情弱www」
0192デフォルトの名無しさん2011/09/05(月) 17:43:03.53
ttp://livedoor.blogimg.jp/hamusoku/imgs/1/c/1cd6fc3e.jpg
0193デフォルトの名無しさん2011/09/05(月) 17:56:23.46
C言語から移行しやすい、webアプリの言語ってどれなのでしょうか?
0194デフォルトの名無しさん2011/09/05(月) 18:00:48.35
Perlええよ
0195デフォルトの名無しさん2011/09/05(月) 18:03:30.54
>>192
箱に決まっているだろ。常考
0196デフォルトの名無しさん2011/09/05(月) 18:07:28.49
問題がバレたら、試験にならんだろうが
0197デフォルトの名無しさん2011/09/05(月) 18:21:05.40
>>195
アスペ乙ww
0198デフォルトの名無しさん2011/09/05(月) 18:28:03.15
C言語の参考書買って勉強しまくって、C言語の達人といわれる
おれだが>>162の質問が何をしてるのか全く分からない。

詳しい人教えて。NICってなに?Linuxってなに?

0199デフォルトの名無しさん2011/09/05(月) 18:31:04.69
おまいら、このスレで暇つぶしすんな。
0200デフォルトの名無しさん2011/09/05(月) 19:05:07.65
>>197
自閉症とアスペルガーの区別もつかん奴に
煽られてもなぁ・・・
0201デフォルトの名無しさん2011/09/05(月) 19:11:12.66
Cの達人()
0202デフォルトの名無しさん2011/09/05(月) 19:16:54.27
>>193
取り敢えず入りやすいのはPHPかな。
大抵のレンタルサーバで使えるし。

Perlがあがってるけど、あれはややこしくておすすめできない。
Cと違うところがたくさんありすぎる。
0203デフォルトの名無しさん2011/09/05(月) 21:50:49.53
質問いいですか?

構造体のメンバ変数を全てファイル出力する場合
やはり1つ1つアクセスしてfprintなどで出力するしかないのでしょうか?

構造体などを引き渡すだけで一気に出力などをする方法などはないのでしょうか?
開発環境はVC++です。
0204デフォルトの名無しさん2011/09/05(月) 21:54:13.79
ならsizeof分だけfwriteしてパディング分のゴミデータ出力してはまれよクズ
0205デフォルトの名無しさん2011/09/05(月) 22:01:05.50
otfのヘッダーを読み出したいのですが、エンディアンがビックなので結局変数の変換が必要になってしまいます。
エンディアンの異なるデータを、構造体レベルで一気にコピーする簡単な方法はありませんか。記述量が少ないほど良いです。
(アライメントはgcc拡張で対応する前提です)
0206デフォルトの名無しさん2011/09/05(月) 22:05:33.72
>>204
メンバにポインタが含まれていたらまじはまれる
0207デフォルトの名無しさん2011/09/05(月) 22:10:22.12
それらを書くのがプログラマだろ
黙って打て
0208デフォルトの名無しさん2011/09/05(月) 22:38:55.45
書き出しデータの先頭か、構造体にエンディアン情報の変数追加して
読み込み時にエンディアン変換かましたら?
0209デフォルトの名無しさん2011/09/05(月) 22:40:28.31
保存するときは常にネットワークエンディアンで保存するようにすればいい
0210 ◆QZaw55cn4c 2011/09/05(月) 22:41:27.87
>>203
#progma
などでなんとかならないのなら、そしてコンパイラ依存をさけたいのなら、おっしゃるとおり、
「1つ1つアクセスしてfprintなどで出力する」
のが正解です。
0211デフォルトの名無しさん2011/09/05(月) 22:43:55.25
C++だとこういう処理をクラス化するのが楽しいんだけどなぁ。
0212デフォルトの名無しさん2011/09/05(月) 23:23:14.65
よかった、QZはやっぱり馬鹿だった。

>>211
そうそう。FileIntとかFileDoubleなんてクラスを作ったりしてね。
エンコーディングの問題はそいつらに任せられるから、
上の方の処理では意識することが少なくて済む。

って、Cで同じようなことをやってもいいけどトリッキーにしかならないからなぁ。
0213 ◆QZaw55cn4c 2011/09/05(月) 23:26:19.02
>>210
×#progma
○#pragma

霧
0214デフォルトの名無しさん2011/09/05(月) 23:27:21.15
文字列を8文字のブロックにわけて数値化する方法を探しているんだけど、
有名なやつとかある?
0215デフォルトの名無しさん2011/09/05(月) 23:28:37.40
VCで作っててCベタ書きするなんて意味が無いと思うんだが…
0216デフォルトの名無しさん2011/09/05(月) 23:28:56.01
頭がトリッキーだと逝ってるような
0217 ◆QZaw55cn4c 2011/09/05(月) 23:39:54.22
>>209
いやもう事情が許すかぎりテキストにして出力するのが一番かと。それがだめなら仕方ありませんが。
0218デフォルトの名無しさん2011/09/06(火) 00:06:00.29
>>214
charポインタが指す内容をlong longで型キャストしてやりゃいいんじゃねぇの?
0219デフォルトの名無しさん2011/09/06(火) 00:08:41.85
>>214
何をやりたいのか、さっぱり?
0220デフォルトの名無しさん2011/09/06(火) 00:12:30.55
Base64 Base32
有名じゃなきゃって、意味わからん
0221デフォルトの名無しさん2011/09/06(火) 00:58:18.39
じゃぁ、パンツが見えるかもしれない、スカートをどうしてはくんですか?
0222デフォルトの名無しさん2011/09/06(火) 01:00:51.67
見られても良いパンツはいてるから
もしくは、見えそうで見えない小悪魔的演出をしてるから。
0223デフォルトの名無しさん2011/09/06(火) 01:01:16.45
今や、スカートの下に長パン?履く時代だよ
0224デフォルトの名無しさん2011/09/06(火) 01:03:30.73
>214

>218 のようにポインタ使うか、サイズ決まってるならunion使うか。
0225デフォルトの名無しさん2011/09/06(火) 01:07:47.14
コードも見んと会話が成立してるところが凄い
0226デフォルトの名無しさん2011/09/06(火) 01:13:26.81
コード無いから検証する手間が省ける。
0227デフォルトの名無しさん2011/09/06(火) 01:16:45.83
お花畑的な考え方だね
0228デフォルトの名無しさん2011/09/06(火) 01:22:18.26
質問のレベルで答えのレベルも変わるだろ。
提供された範囲で答えるしか無いんだし。

具体的なコードが提示されれば又別だよ。
0229デフォルトの名無しさん2011/09/06(火) 01:32:58.64
>>195
カゴ⇒自分⇒アン⇒箱の順に探すに決まってるだろ。
02302142011/09/06(火) 05:53:50.02
>>218 >>219 >>224

説明不足ですまん。
RSAやってて
数値⇔文字列
の処理を暗号復号の前後にしなくちゃいけないからその方法を探してた。
まぁ、いろいろやってみるわ。
0231デフォルトの名無しさん2011/09/06(火) 10:20:56.95
かってにやれば
02322142011/09/06(火) 12:58:11.82
ごめんなさい。
0233デフォルトの名無しさん2011/09/06(火) 17:03:22.24
もう次回からここのスレタイ
C言語なら俺に聞かないでくれ(お断りします編)にした方がいいんじゃね?
0234デフォルトの名無しさん2011/09/06(火) 17:07:03.37
入門前の人には質問の仕方から覚えてもらわないと
0235デフォルトの名無しさん2011/09/06(火) 17:37:44.52
http://codepad.org/VDC8hvKu

このコードで構造体Bの中の構造体Aの値だけを変えたいんですがどこを直せばいいですか?
0236デフォルトの名無しさん2011/09/06(火) 17:59:36.17
http://yuzuru.2ch.net/test/read.cgi/pc2nanmin/1080308026/829
何故たくさんの場所で聞くと答えが速くもらえると思うのか
0237デフォルトの名無しさん2011/09/06(火) 18:10:35.28
>>236
突っかかるみたいであれだけど、たくさんの場所で聞くこと自体は合理的な選択じゃね?
ただしローカルルールを理解しようとしない愚か者なわけだが
0238 忍法帖【Lv=40,xxxPT】 2011/09/06(火) 18:17:00.67
>>237
あんた馬鹿?
0239デフォルトの名無しさん2011/09/06(火) 18:17:07.89
マルチポストは嫌われるって、知らんのかな。。。

結果的には適切なスレ見つけて、一箇所で聞いた方が教えてもらえるんだよ
0240デフォルトの名無しさん2011/09/06(火) 18:24:36.72
>>238
皮肉を言ってるのはわかるがマルチやっちゃうような初心者質問者には伝わらねーよって言いたいわけ
0241デフォルトの名無しさん2011/09/06(火) 18:35:57.17
マルチ、マルチうるせーな。わかんねーなら黙ってろ。
0242デフォルトの名無しさん2011/09/06(火) 18:37:53.79
>>239
マルチポストがばれない限りはマルチポストのほうが回答がつく確率は高いという話だと思う
嫌われないなんてことは誰も書いてないかと
0243デフォルトの名無しさん2011/09/06(火) 18:39:42.86
あ、マジレスすると、構造体Bの中の構造体Aの値を変えているところをなくせばいいよ
0244デフォルトの名無しさん2011/09/06(火) 18:40:00.20
>>242
でも大抵ばれてるのを見かける
0245 忍法帖【Lv=40,xxxPT】 2011/09/06(火) 18:46:18.94
>マルチポストがばれない限りはマルチポストのほうが回答がつく確率は高いという話だと思う
実はそうでもない。
例えばこのスレ辺りにピンポイントで質問すれば、間がよければマルチポストするより早くレスがつく。
0246デフォルトの名無しさん2011/09/06(火) 18:49:48.52
>>244
マルチ氏ねとレスをした人の行動を考える。

・質問を見る→2chおよびその他のサイトをみて、同じ質問があれば、マルチ氏ねとレスをする
・常に2chおよびその他のサイトを巡回しており、質問を見かけるが回答をせずに放置する
 →同じ質問を見かける→マルチ氏ねとレスをする
・マルチポストをした上で、マルチ氏ねと自演をする

いずれにしても、マルチ氏ねとレスをした人は擁護されえない人物であろう。
0247デフォルトの名無しさん2011/09/06(火) 18:50:07.13
似たようなスレには結局同じメンバーが集う。
0248デフォルトの名無しさん2011/09/06(火) 18:54:24.62
>>246
マルチポストしてる人同様、答える側も関連スレ巡回してるのは当然だと思うんだが。。。
バレないって考える根性が嫌われるんじゃないかねぇ。。。
0249デフォルトの名無しさん2011/09/06(火) 19:00:24.72
>>248
もしかするとマルチポストで、すでに回答がついているかもしれないから、回答せずに巡回をするってことだよね
0250デフォルトの名無しさん2011/09/06(火) 19:03:36.12
つうか、専ブラで巡回するときに更新があったスレ全部開いてみるってやってる奴は少なくないだろ。
骨髄反射じゃなく、一通り見てレスするタイプなら気が付かない方がおかしいし、何度も見るとイラッとする。
0251デフォルトの名無しさん2011/09/06(火) 19:21:35.14
必死杉。
0252 ◆QZaw55cn4c 2011/09/06(火) 19:44:04.53
マルチがなぜ悪いのか説得力のある説明が、これまで一つも上がっていない件について。

私?気が向いたらマルチの一つに答えています。
マルチに特に悪い感情はありません。というかマルチが嫌われる理由が想像できない。
■ このスレッドは過去ログ倉庫に格納されています