C言語なら俺に聞け(入門編)Part 111at TECH
C言語なら俺に聞け(入門編)Part 111 - 暇つぶし2ch200:デフォルトの名無しさん
12/12/17 17:12:11.39
いろいろあるね

201:デフォルトの名無しさん
12/12/17 17:31:50.54
Windowsなら
system("start music.mp3");

202:デフォルトの名無しさん
12/12/17 17:35:47.80
>>201
最小化した状態で起動するなら
system("start /min music.mp3");

203:デフォルトの名無しさん
12/12/17 17:36:05.55
自己解決しました

204:デフォルトの名無しさん
12/12/17 20:01:46.44
ベル文字ってあるでしょ
音でないけど…

205:デフォルトの名無しさん
12/12/17 20:03:57.70
うちは出るよ。
でも実際に音をならすのは端末の機能。

206:デフォルトの名無しさん
12/12/17 20:05:19.32
環境依存?

207:デフォルトの名無しさん
12/12/17 20:17:44.73
#include <stdio.h>

int main(void)
{
  int i;
  int N = 10;

  for(i = 0; i < N; i++) {
    printf("\007");
  }

  return 0;
}

208:デフォルトの名無しさん
12/12/17 20:34:22.05
>>206
うん

209:デフォルトの名無しさん
12/12/18 14:44:07.60
>>202
消防以下のレベルに善く答えてあげたな。

210:デフォルトの名無しさん
12/12/18 15:44:41.85
関数の引数なしを

void test(){}

と()内にvoidと書かなくても大丈夫?

211:デフォルトの名無しさん
12/12/18 15:49:22.94
昔はそう書いた
今ならvoidつけた方がよい

212:デフォルトの名無しさん
12/12/18 15:59:02.16
>>211
なんで?

213:デフォルトの名無しさん
12/12/18 16:06:52.58
そのまま関数宣言に使ったときにも、引数がないことが明確になるから。

214:デフォルトの名無しさん
12/12/18 16:10:18.25
最近はハードの性能も上がり、色々こねくり回すよりも可読性を重視したコーディングが求められるだろうから、
やろうとしていることはなるべく明示した方が良い。

バグ潰しの効率もずいぶん変わるし、何より考えすぎたコードは次の日自分でも何やってんだか分からなくなったり。

215:デフォルトの名無しさん
12/12/18 16:34:01.01
>>213
>そのまま関数宣言に使ったときにも、引数がないことが明確になるから。

それ、チェック機能の弱い、古いコンパイラ時代の常識。

216:デフォルトの名無しさん
12/12/18 16:36:09.14
Cだと書いた方がいいね
他の言語(C#とか)だと書かないと自動的に引数なし扱いになるけど

217:デフォルトの名無しさん
12/12/18 17:03:29.86
なるけどね

218:デフォルトの名無しさん
12/12/18 17:41:21.75
まぁ一応書いておくだろ

219:デフォルトの名無しさん
12/12/18 18:28:18.40
宣言なら書かないといけないけれど、定義ならどっちでもいいよ。Cは。

220:デフォルトの名無しさん
12/12/18 19:07:08.53
定義をコピペして関数プロトタイプ宣言にするから自分は書くけどね

221:デフォルトの名無しさん
12/12/18 19:46:48.09
どっちでもいいならすこす長くてもわかりいいほうにしとけってばっちゃが

222:デフォルトの名無しさん
12/12/18 20:11:10.05
ありがとうCではちゃんと記述する
それ以外は略してもいいという認識で行く

223:デフォルトの名無しさん
12/12/18 21:00:22.85
Cなら略してもいいのだ。他の言語では、voidの意味になってしまう

224:デフォルトの名無しさん
12/12/18 21:35:50.50
C#ってvoid書くとコンパイルエラーになるよね

225:デフォルトの名無しさん
12/12/18 22:56:50.25
なるよね

226:デフォルトの名無しさん
12/12/18 23:05:38.14
ネー

227:デフォルトの名無しさん
12/12/18 23:10:46.83
unionとstructってどう違うんですか?

struct{int a, double b, char c,char d[10][10]}←できる
union{int a, double b, char c, char d[10][10]}←できる

228:デフォルトの名無しさん
12/12/18 23:14:38.62
たしか、unionとstructってメモリに展開した時に違いが発生するんだよね?
unionは1つの連続した領域として取られるハズ

229:デフォルトの名無しさん
12/12/18 23:14:49.55
unionは、どれか1つのメンバしかメモリに載らない

230:デフォルトの名無しさん
12/12/18 23:16:10.57
1つの代入した、もう1つのメモリ上の領域は破壊(塗り潰す)される

231:デフォルトの名無しさん
12/12/18 23:16:15.65
>>228
あやふやなら回答しない方がいい

232:デフォルトの名無しさん
12/12/18 23:16:52.60
確実な回答おがないしましゅ

233:デフォルトの名無しさん
12/12/18 23:17:39.48
確実な回答が欲しいなら、自分で仕様書なり調べろ

234:デフォルトの名無しさん
12/12/18 23:19:03.78
それならそうと一番最初に家よks

235:デフォルトの名無しさん
12/12/18 23:26:51.91
unionはメンバ中で一番に大きいメモリサイズで領域を確保する
d[10][10]の領域の中に、int a, double b, char cの先頭を指してる
だから、どれか代入すると他のメンバ変数はメモリ上に載せることが出来ない

236:デフォルトの名無しさん
12/12/18 23:31:36.87
>>235
最小のプログラムでunionの場合structと比べてこれができないっていう
例を教えて下さい。

237:デフォルトの名無しさん
12/12/18 23:34:55.94
できる
struct Foo a;
a.a = 10;
a.b = 0.1;
できない
union Bar b;
b.a = 10;
b.b = 0.1;

printfでconsoleにでも出力汁

238:デフォルトの名無しさん
12/12/18 23:36:51.35
自己解決しました。

239:デフォルトの名無しさん
12/12/18 23:38:26.58
1つだけ、今後のアドバイスすると、プログラマにはならない方がいいよ
君には向いてないから

240:デフォルトの名無しさん
12/12/18 23:38:41.91
>>237
ランタイムエラーだったけどありがとうございます。
さすればunionって欠陥品ということでしょうか?

241:デフォルトの名無しさん
12/12/18 23:41:06.74
うn

242:デフォルトの名無しさん
12/12/18 23:41:42.63
省メモリで組む必要がある組込み用途で必要

243:デフォルトの名無しさん
12/12/18 23:46:24.41
sizeof演算子で、structとunionの大きさ確認しろ

244:デフォルトの名無しさん
12/12/18 23:59:23.38
struct アレやコレを一緒にまとめて入れておく。
union ひとつの場所に、ある時はアレ、またある時はコレと使い分ける。

245:デフォルトの名無しさん
12/12/19 00:06:59.28
入門での中途半端な文法レベルなら、rogueなり、
tux racerなり落としてきて使い方眺めた方が早い
飯食うなら、枕元にBSDのコード置くぐらいのことした方が良い

246:デフォルトの名無しさん
12/12/19 07:47:18.99
良いね

247:デフォルトの名無しさん
12/12/19 10:53:20.83
もっとも、c++,javaでヤドカリ本の暗記した方が潰しがきくけどね

248:デフォルトの名無しさん
12/12/19 11:24:42.62
スレタイ読めないヴァカがいるぞ

249:デフォルトの名無しさん
12/12/19 14:57:04.28
>>248
お前だ

250:デフォルトの名無しさん
12/12/19 21:34:21.71
cで何かするならgtkあたりがベター
cの入門なら、gnome付属のゲームでも読めば?

大学講座の単位なんて飾りですw
入門者には、それが分からんのですw

251:デフォルトの名無しさん
12/12/19 21:55:21.74
何か今日あった?
入門スレでしか暴れられない方々が多いな。

252:デフォルトの名無しさん
12/12/19 22:49:52.00
多いね

253:デフォルトの名無しさん
12/12/20 00:10:37.14
一文字だけstrcpy,strcatしたい場合はどうしたらいいですか?
char buf[10];
char buf2[10];
strcpy(buf,buf2[0]);

char buf3[2];
buf3[0]=buf2[0];
strcpy(buf,buf3);
とするのはさすがに面倒なので.....

と一文字だけコピーしたい場合エラーが出るので。

254:デフォルトの名無しさん
12/12/20 00:11:56.35
大学が役に立たないから、代りに入門者の教育してるんだろ

255:デフォルトの名無しさん
12/12/20 00:14:56.64
strncpy

256:デフォルトの名無しさん
12/12/20 00:19:16.97
strcpy(buf,buf2[0]);
はbuf2[0]がポインタでなくて、char型

257:デフォルトの名無しさん
12/12/20 00:23:56.74
入門レベルでvisual studioのようなIDEなんて使うと、
文法やコンパイルの仕組みを理解できないから、ある程度に達するまでemacsやvimを使え

258:デフォルトの名無しさん
12/12/20 00:24:26.63
>>253
sprintf(buf, "%s%c", buf, buf2[0]);

259:デフォルトの名無しさん
12/12/20 00:29:58.53
入門段階でgdbのマニュアルを端から端まで読んでおけば、
ポインタや、ポインタの派生型が大体、何かは理解できる。

屑大学の馬鹿って、院生にもなって動画サイトに上がってる
HSP製のゲームに感動するような場所w

260:デフォルトの名無しさん
12/12/20 00:45:48.07
>>259
バカはお前だ

261:デフォルトの名無しさん
12/12/20 00:50:53.35
OOPLなんて大学1年次のうちに、主要言語の文法は全部おぼえてしまう方が良いよ
学部2年の前半でUMLとデザパタを一通り暗記するぐらいのペース。後半でGUI弄る。
学部3年の前半で業界動向を調べつつ、4年次の研究テーマを事前に勉強。
このぐらいのペースでないと就職活動で皆が希望するような所には間に合わないよ。

262:デフォルトの名無しさん
12/12/20 00:52:05.62
>>260
中身のない煽りって、どうでも良いな^^

263:デフォルトの名無しさん
12/12/20 01:04:24.52
それと、マニュアル、チュートリアル、リファレンスの類は全部、英語で読め。
入門書を買うなら洋書を買え

264:デフォルトの名無しさん
12/12/20 01:13:05.49
>>255
strcatで無いですかね?

buf[3]とbuf[7]を連続して

buffer[100]に連結したい。
でも一文字だからできないという。

265:264
12/12/20 01:15:10.71
bufは"abcdefghi"


buffer[100]=all \0;
buffer[0]='U';

strcat(buffer,buf[3]);
strcat(buffer,buf[7]);


printf("%s",buffer)=Udh;
としたいです。

266:デフォルトの名無しさん
12/12/20 01:20:10.56
わけわからん

267:デフォルトの名無しさん
12/12/20 01:22:57.93
こういうことけ?
strncat(buffer, &buf[3], 1);
strncat(buffer, &buf[7], 1);

268:デフォルトの名無しさん
12/12/20 01:27:08.77
>>264
strncat(buffer,*buf[3],1);
strncat(buffer,*buf[7],1);
環境ないから動くかシラネ。
strcatでやれって課題なの?

269:268
12/12/20 01:27:51.04
ああ、間違えた.&だ

270:デフォルトの名無しさん
12/12/20 01:28:10.41
>>262
>>259 みたいな嘘ばかりの腐った中身なんて無いほうがいいだろ

271:268
12/12/20 01:30:02.50
>>270
嘘だって根拠は?

272:264
12/12/20 01:30:23.53
>>268
ありがとうー
いや連結したいからそれが実現できるなら何でもいいよ
何とかできそう

273:デフォルトの名無しさん
12/12/20 01:36:43.57
>>272
strncat(buffer, buf + 3, 1);
strncat(buffer, buf + 7, 1);

274:デフォルトの名無しさん
12/12/20 01:38:44.24
>>273
bufって定数だけど、それでポインタ演算うまくいくっけ?

275:デフォルトの名無しさん
12/12/20 03:57:38.16
>>274
そんなことぐらい自分で判断しやがれ
ここで聞いても答えはでんだろ
他の人の意見を聞くならまだしも
お前が信じるかどうかなんて知ったことじゃねえ

276:デフォルトの名無しさん
12/12/20 12:44:20.86
定数だろうが変数だろうがアドレスの加算は正常にできる。

277:デフォルトの名無しさん
12/12/20 12:53:00.14
>>274
bufを書き換えるわけじゃないからok

278:デフォルトの名無しさん
12/12/20 13:19:11.34
初心者はstrcat,strncatは使わない方がいいよ
初心者ほど使いたがるけど初心者ほど使い方間違える

279:デフォルトの名無しさん
12/12/20 13:29:40.59
>>270
>>259は実体験に基づいた真実だと思うぞ。>>259のようなことは書けない。

280:デフォルトの名無しさん
12/12/20 17:20:54.96
sscanfとsprintfがあれば、まあだいたいのことはできるな

281:デフォルトの名無しさん
12/12/20 20:52:14.17
>>280
putcharとgetcharがあればあとはいらない

282:デフォルトの名無しさん
12/12/20 21:31:34.70
yacc/lexいりませんか?

283:デフォルトの名無しさん
12/12/20 21:37:13.12
yaccはいる。lexはあんまり使わないからどっちでもいい。

284:デフォルトの名無しさん
12/12/20 23:15:50.61
一般的なペーストビンでも使ってろ

285:デフォルトの名無しさん
12/12/20 23:39:55.94
antlrやjavaccの方が使われてるけどな

286:デフォルトの名無しさん
12/12/21 13:36:57.42
質問ですお願いします
ソースは以下なのですが(自作関数略)VC++だとコンパイルでき、結果も正しくでます
しかし、bcc32や、他のコンパイラだとエラーが出ます
「エラー E2277 a.c 15: 左辺値が必要(関数 main )」

#include <stdio.h>

int mdays(int y, int m);
int uruu(int year);

int main(void)
{
int y1,m1,d1,y2,m2,d2;
int i,j,days;

while(scanf("%d%d%d%d%d%d",&y1,&m1,&d1,&y2,&m2,&d2)){
if(y1<0 || m1<0 || d1<0 || y2<0 || m2<0 || d2<0)
break;
for(i=y1,days=0; i<=y2; i++)
for(i!=y1? j=1: j=m1 ; i!=y2? j<=12: j<=m2 ; j++)
days+=mdays(i,j);
days-=d1;
days-=(mdays(y2,m2)-d2);
printf("%d\n",days);
}

return 0;
}

恐らく、三項演算子が原因だと思うのですが、どうしてなのかさっぱりわかりません

よろしければ是非教えてください。よろしくお願いします

287:デフォルトの名無しさん
12/12/21 13:58:09.57
こう書きたかったのか? よくわからん
URLリンク(ideone.com)

こんな変な書き方する奴がいるから三項演算子禁止とかいう
アホルールが作られるんだろうなぁ
ループの条件判定で比較を無駄に増やして誰が得するんだ?

288:デフォルトの名無しさん
12/12/21 14:01:19.46
原因がわかってるなら対策すればいいのに。

289:デフォルトの名無しさん
12/12/21 18:08:49.46
確かにこんなの見たら使用禁止にしたくなるな。

290:デフォルトの名無しさん
12/12/21 18:15:22.63
なるね

291:デフォルトの名無しさん
12/12/21 18:36:17.90
>>286
本当にVC++でコンパイルできるの?
VC++2010だとコンパイル出来ねぇぞ
ひょっとしてVC++でだけ、C++でコンパイルしてないか?
条件演算子の優先順位がC++とCで微妙に異なるのでそのせいじゃないのか

292:デフォルトの名無しさん
12/12/21 18:46:44.54
if文と三項演算子は別物だと考えろ。

293:デフォルトの名無しさん
12/12/21 20:12:30.88
かんがえろよね

294: ◆QZaw55cn4c
12/12/21 20:27:51.26
三項演算子の正しい使い方
スレリンク(tech板:594番)

295:デフォルトの名無しさん
12/12/21 20:31:05.51
自己解決した

296:デフォルトの名無しさん
12/12/21 22:34:24.35
「コードは短ければ理解しやすい」という命題への反証の良い例

297:デフォルトの名無しさん
12/12/21 22:47:02.52
あああ 変態なことしたい! 性欲まみれの会員とチャットしてくれ!!頼む!!

298:デフォルトの名無しさん
12/12/21 22:50:25.88
じゃあラーメンタイマーの仕様定義するからよろです。

・ラーメンの待ち時間の長さ&商品によって異なる味の変化をデータベース化
 例:商品Aでは4分で「麺のふにゃふにゃ感が芽生えはじめる」
   というような情報に基づき柔軟に味を調節可能
 データベースは、ある設定でラーメンが出来たら、感想フォームを表示、
 ここに感想を入力していくことでオリジナルのデータベースが出来あがっていくという仕組み。
 さらに、TCP/IP通信でこのデータベース情報を交換できる。

・ラーメンが出来るまでの時間をミニ格闘対戦ゲームで潰せる「時間があっというまに経つね」機能
 TCP/IP通信で、ロビーをデディケートサーバーで提供できるような感じで。

・ラーメン作成回数・日時・商品情報から、ラーメンにおける摂取カロリー計算や
 嗜好分析などを行える統計機能つき。
 この統計から、「おすすめの新作カップメン」みたいな情報も表示できる。

タイムリミットは明日の6時までに適当なアプロダで、GPLで。

299:デフォルトの名無しさん
12/12/21 23:02:29.93
なんだコイツ
真正のアホだ

300:デフォルトの名無しさん
12/12/21 23:09:47.71
そうか?

301:デフォルトの名無しさん
12/12/22 00:08:21.07
int型配列で間にある要素を削除して詰める方法ありますか?


int a[5]; a[0]=0; a[1]=1; a[2]=2; a[3]=3; a[4]=4; a[5]='\0';

a[2]を削除して間を詰めて

a[0]=0; a[1]=1; a[2]=3; a[3]=4; a[4]='\0'; a[5]='\0';
としたいです。

全然方法が思い浮かばないんですが...

302:デフォルトの名無しさん
12/12/22 00:08:48.97
GPLはちょっと

303:デフォルトの名無しさん
12/12/22 00:11:11.12
>>301
人が並んでる行列を詰めるのと一緒だろ。

304:デフォルトの名無しさん
12/12/22 00:12:51.47
なにそれこわい

305:デフォルトの名無しさん
12/12/22 00:13:25.01
>>301
a[2]=a[3];
a[3]=a[4];
a[4]=a[5];

つまり、
for(i=2;i<5;i++)a[i]=a[i+1];

306:デフォルトの名無しさん
12/12/22 00:15:54.27
>>305
関数として一般化したらどうなりますか?

kansu(int a[] ,int integer){}

strlenした時に消した要素の分長さも減っていてほしいです。

307:デフォルトの名無しさん
12/12/22 00:18:23.78
>>298
一度、似たような課題を何度か解いたことある人が半日でやってみせて
俺スゲェーってやるような問題.大体、やねうらお辺り

308:デフォルトの名無しさん
12/12/22 00:33:17.67
>>306
>strlenした時に消した要素の分長さも減っていてほしいです。
int配列だから、strlen使えない。

URLリンク(ideone.com)

309:デフォルトの名無しさん
12/12/22 00:44:06.72
>>308
ありがとう!

310:デフォルトの名無しさん
12/12/22 00:56:01.71
オブジェクトの初期化の意味がわからないです
どういうときに初期化するのですか?
初期化しないとどうなるんですか??

311:デフォルトの名無しさん
12/12/22 00:56:08.56
>>308,309
詰めたいエリアの途中に、0があるとNG。

312:デフォルトの名無しさん
12/12/22 01:02:21.34
初期化しないとどんなデータが入ってるのかわからない
初期化しないままでたらめなデータを使って計算すると意図しない動作になる

313:デフォルトの名無しさん
12/12/22 01:08:27.70
>>312
呼ばれる度にデータが変わるので、初期化しないと変わったデータのまま処理してしまうってことですか?

314:デフォルトの名無しさん
12/12/22 02:32:17.38
>>301
memmoveでも使ってろ

315:デフォルトの名無しさん
12/12/22 03:05:27.31
>301
#define DC(b) case b:a[b]=a[b+1];
int a[6]={~};
switch (x){DC(0) DC(1) DC(2) DC(3) DC(4) DC(5)}

316:デフォルトの名無しさん
12/12/22 12:40:22.74
>>301のはspliceで検索すればいい

C++にはstd::list::spliceですでに存在している
Cではそれっぽいソースをどこからともなく探せばいい

spliceについては、Javascript、php、perlの解説にその挙動が詳しい

317:デフォルトの名無しさん
12/12/22 14:42:31.05
アホか。
spliceという一般的な単語からそれっぽいソース探してなおすより
最初から書いた方がはやいわ。

318:デフォルトの名無しさん
12/12/22 14:51:34.05
↑アホ

319:桃白白
12/12/22 14:55:23.68
>>318
そうか? spliceは値の挿入、値の削除、値の置換をしちゃう関数だ。
削除のためだけにspliceを実装するのはりんごを剥くために万能ナイフを
買いに行くようなもの。果物ナイフで剥けばいいじゃん。

320:デフォルトの名無しさん
12/12/22 14:58:31.47
結局>>314が一番ラクでよくね?

321:デフォルトの名無しさん
12/12/22 16:18:26.88
>>318にとって>>301のお題はとてつもなく難しいのだろう。
能力なさそうだからホームレスにでも転職すりゃいいのに。

322:デフォルトの名無しさん
12/12/22 16:38:08.22
遺伝的アルゴリズムについて詳しく説明してあるサイトってありますか??
自動作曲をしようと思っているのですが、うまくいきません
評価関数とかをどういうふうにプログラムしたらいいのかわからなくて…

323:デフォルトの名無しさん
12/12/22 16:40:59.29
芸術系の評価関数はねーだろw
人力じゃん人力

324:デフォルトの名無しさん
12/12/22 17:31:54.14
ゲームなんかの敵アルゴリズムで経験を積んで少しずつ強くなる
みたいな用途(プレステ1のアストロノーカ)には適すると思うけど
作曲みたいに人の感性に依存するものは人にしか無理だと思う。

詳しく解説した書籍は知る限りでは洋書に頼ることになるはず。
日本語書籍では↑のアストロノーカ作者が書いた本が「あった」
のだが、今は絶版となっている。

325:324
12/12/22 17:31:59.88
C99(C89/C90)で OpenAL や WindowsAPI を使わずに
音を鳴らす方法を模索しています。
・printf("\a"); や
・ncurses で beep(); までは見つかったのですが
結局ビープ音しか鳴らすことができていません。
なにかよい方法 / ライブラリなどがありましたら教えてください。

環境:
Mac OS X 10.6.8
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666)

326:デフォルトの名無しさん
12/12/22 17:33:27.05
>>324の絶版書籍は「マッチ箱の脳」という本です。

327:デフォルトの名無しさん
12/12/22 17:35:04.91
>>325
環境依存なのでC言語の規格が定める範囲の外の話です。
汎用的な方法はありません。お使いのハードウェアに適した
方法を使ってください。

328:デフォルトの名無しさん
12/12/22 17:37:30.12
>>324
URLリンク(www.1101.com)

本がウェブサイトになってました(

329:デフォルトの名無しさん
12/12/23 00:08:18.62
スレチだろうけど…
C言語入門向けの一番のおすすめの書籍はありますか?

330:デフォルトの名無しさん
12/12/23 00:18:46.44
>>329
URLリンク(www.yfcbookshelf.com)
これ

331:デフォルトの名無しさん
12/12/23 00:19:02.86
ふつうのlinuxプログラミング入門(青木...)

332:デフォルトの名無しさん
12/12/23 00:20:46.65
Linuxプログラミング
例題で学ぶUNIXプログラミング環境のすべて(ニール・マシュー)

333:デフォルトの名無しさん
12/12/23 00:25:02.79
下の本は中身が古くて、cvsやrcsコマンドについては歴史的な価値しかないと思う

334:デフォルトの名無しさん
12/12/23 00:26:42.91
歴史的価値とは?

335:デフォルトの名無しさん
12/12/23 00:27:41.39
SCMなんて流行り廃れが激しすぎて、今日日の主流がsubversionかgitだから

336:デフォルトの名無しさん
12/12/23 00:35:50.14
プログラミング入門なら、まつもとゆきひろ辺りが監修してた「CodeReading」

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

338:デフォルトの名無しさん
12/12/23 00:40:09.73
>>337
は?それ、ようやく現場で役に立つレベルだろ

339:デフォルトの名無しさん
12/12/23 00:44:36.07
入門スレで、現場ガーって言ってる奴は仕事経験ないだろ。
いやあったら寧ろ遠慮したい。

340:デフォルトの名無しさん
12/12/23 00:47:20.76
より酷いのか、より凄いのか、どっちだ?

341:デフォルトの名無しさん
12/12/23 01:08:37.35
「c言語によるオブジェクト指向プログラミング入門」この辺りからイラナイだろ
段階的には素直にjavaかc++でも覚えて、
デザパタなりリファクタリングなり覚えた方が悦楽に浸れるだろうし、
それに飽きてから、より高度でマニアックなプレーに走った方がソソるはず

342:デフォルトの名無しさん
12/12/23 02:24:42.90
unsigned char *fn[] ={ "a.bmp" ,"b.bmp" ,"c.bmp" ,"d.bmp" ,"e.bmp" };

 ファイル列のリストが欲しいだけなのだけど、IDEにアンダーラインで指摘されてしまいます。
 『Error:型"const char *"の値を使用して型"unsigned char *"のエンティティを初期化することはできません』って。
 これが出来ないんじゃmain関数に引数渡せないでしょ・・・とも思うけど、俺が何か勘違いしているんだろうなあ。
 すいません、教えて下さい。 msdnのどこを見れば良いのか分からなくて。

 VS2010EXPRESSなのですが。

343:デフォルトの名無しさん
12/12/23 02:30:08.12
unsignedとったら行けそうな気がしないでもない

344:342
12/12/23 02:41:25.71
>>343
 ありがとうございます!
 昔からの習慣に思考停止しておりました。
 IDEがそう教えてくれているのに理解出来ない辺り、どこに出しても自慢出来る低能ですね。

345:デフォルトの名無しさん
12/12/23 02:42:44.08
つーかなんでunsignedつけたのか理由を述べよ

346:デフォルトの名無しさん
12/12/23 02:43:53.83
それは右辺が一時的にしか存在しない可能性があり、データが消える可能性がある。
fn[] ="a.bmp";だと適切なメモリを確保してくれるが。

347:デフォルトの名無しさん
12/12/23 03:01:42.18
c言語でグラフィックプログラムしてみたんだけどライブラリにあった
関数でコールバック関数ってのが出てきました。コールバック関数って何ですか?

348:デフォルトの名無しさん
12/12/23 03:11:23.29
与格が無いからねぇ

349:デフォルトの名無しさん
12/12/23 03:20:34.17
型をあわせるという思考があるのならこんなエラーなど
出ないはずなんだが・・・

右辺と左辺で型が違う時点で違和感を感じないとだめ。
というか文字列リテラルは基本的にsigned charだから。

350:342
12/12/23 03:25:36.96
>>345
文字に負数はないから。
現存するwindowsではない古いコード読み直したら、文字列扱う場合は
総てunsigned付けていましたヽ(´∀`)ノ

351:デフォルトの名無しさん
12/12/23 03:25:41.98
>>347
コールバックというのは何かのイベントが発生した時に
イベントをハンドリングする処理からコールバックされる
関数のこと。

割り込みハンドラなんかでよく使うけど、UI処理などでも
ボタンが押されたらイベントハンドラからコールバックを
してくれるとか、イベント系ではよくある処理方法。

352:342
12/12/23 03:32:13.44
>>349
 singed、肝に銘じます。

353:デフォルトの名無しさん
12/12/23 03:37:14.97
unsigned かsigned かはコンパイラのオプション。
規格ではsigned かもしれん。

354:デフォルトの名無しさん
12/12/23 04:42:54.47
charはsigned charかunsigned charのどっちかと同じ型だけど、実際にどっちなのかは処理系依存。
C++だとそれぞれ別の型。

だったような気がする。

355:デフォルトの名無しさん
12/12/23 08:00:19.12
気がするね

356:デフォルトの名無しさん
12/12/23 10:28:25.70
勉強し始めたばかりなんですが、
なんでメモ帳にプログラムを書いて
結果が出るんですか?
メモ帳にそういう機能が付いているからなのでしょうか?

357:デフォルトの名無しさん
12/12/23 10:43:00.83
>>356
>結果
普通出ません

358:デフォルトの名無しさん
12/12/23 10:46:41.68
>>357
あ、そうなんですか?w

359:デフォルトの名無しさん
12/12/23 11:43:39.04
うん

360:デフォルトの名無しさん
12/12/23 13:22:55.19
>>357
裏技を使えば出る

361:デフォルトの名無しさん
12/12/23 14:26:27.96
フリーのもあるが、最低でも5万円位のメモ帳買わなきゃ

362:デフォルトの名無しさん
12/12/23 19:23:49.74
>>356
こういうレス好きだわあ

363:デフォルトの名無しさん
12/12/23 22:01:55.26
好きだね

364:デフォルトの名無しさん
12/12/24 01:44:28.84
こんにちは。いきなりですが、
txtファイルにある
14
1001 90 80 70 67
1002 60 50 40 60
1003 55 30 56 65
1004 88 70 77 20
1005 60 30 90 30
1006 100 0 100 100
1007 23 33 21 50
1008 65 66 46 98
1009 58 87 88 64
1010 30 55 63 32
1011 65 54 70 77
1013 98 89 79 90
1014 100 60 95 68
1016 30 22 56 30
という数値を2次元配列に格納して平均が高い順に並べ替えるプログラムを作成中なのですが、
イマイチどういう風に書くのかが分かりません・・・
ご教授頂けるとお願いします・・・

365:デフォルトの名無しさん
12/12/24 01:50:28.83
宿題は宿題スレへ

366:デフォルトの名無しさん
12/12/24 03:42:57.03
fopenでファイル開いて、
sscanfでバッファ読み取って、配列に代入
平均求める関数とバカソートかいて
レポートを提出する

367:デフォルトの名無しさん
12/12/24 09:37:22.09
>>364
X 教授
O 教示

368:デフォルトの名無しさん
12/12/24 10:08:23.72
>>367
国語辞書ぐらいひけよ、ネトウヨ。

369:デフォルトの名無しさん
12/12/24 10:49:25.57
>>368
その上で言ってるんだよ。ゴミカス。
テメーのようなゴミカスに「特別に与える」義理はねーし、
テメーのようなゴミカスを弟子にもった憶えもねー

きょう‐じゅ〔ケウ‐〕【教授】 [名](スル)
1 学問や技芸を教え授けること。「書道を―する」

さず・ける〔さづける〕【授ける】 [動カ下一][文]さづ・く[カ下二]
1 目上の者が目下の者に特別に与える。「学位を―・ける」「勲章を―・ける」
2 師が弟子に教える。伝授する。「秘伝を―・ける」「知恵を―・ける」

370:デフォルトの名無しさん
12/12/24 11:05:49.71
↑アホ

371:デフォルトの名無しさん
12/12/24 11:34:05.72
↑アホ

372:デフォルトの名無しさん
12/12/24 12:06:01.07
勝った

373:デフォルトの名無しさん
12/12/24 12:21:54.84
>>369
国語辞書ひいても意味がわからんのか、ネトウヨは。。。

374:デフォルトの名無しさん
12/12/24 14:01:41.79
>>373
人に教えをこうときは「教示」で正解だと思うんだけど、なんで言い争ってんの?
「教授」だと人称(つまり、ここでは言ってる人)だから変だよ?ってことなんじゃないのか?

教示:(相手に)教え示す(ように頼む)
教授:(自分が相手に)教え授ける

375:デフォルトの名無しさん
12/12/24 14:04:40.66
更なるアホが来た

376:デフォルトの名無しさん
12/12/24 14:21:05.58
反論できないんだね

377:桃白白
12/12/24 14:38:46.85
>>374
桃白白も話題に混ぜてほしい。

Aさんが教示するといったとき教示するという動作の主体はAさん。
Aさんが教授するといったとき教授するという動作の主体はAさん。
動作の主体は教示するといったときも教授するといったときも同じAさん
なわけだから、教示すると教授するに違いはない。

頂くが教授に付いている。頂くは前の動詞を自分が~してもらうという意味にする補助動詞。
AさんがBさんに「ご逝去頂きたい」といったとき、AさんはBさんが逝去することを
Bさんにお願いしているわけ。

だから教授でも教示でもどっちだもいんじゃねってのが桃白白の結論。

378:デフォルトの名無しさん
12/12/24 14:44:37.23
さすがお前ら
プログラミング以外の事には詳しいんだな

379:デフォルトの名無しさん
12/12/24 14:44:59.67
>>369 のどこをどう見たら人称につっこんでるって結論になるんだよwww

380:デフォルトの名無しさん
12/12/24 15:12:36.29
>>377
教授するという場合は、師弟関係や主従関係などの上下関係が存在する。
どこの馬の骨ともわからない名無しにいきなり「教授して欲しい」と乞われて、
はいそうですかと授ける事はありえない。
貢物差し出して、どうか教授してくださいと懇願するなら考えない事もない。

381:デフォルトの名無しさん
12/12/24 15:16:52.19
>>380
これ大事よね

どこの誰とも知らん相手から師匠になってくれと頼まれてはいそうですかとか
ありえん
道を示して欲しいというなら教えるものもいるだろう

382:デフォルトの名無しさん
12/12/24 15:19:19.90
そんなこんなでそろそろググって教授が間違いなのは、初発の人も気がついた頃だろうさ
あとは蛇足、言葉遊びするよりコード書け(オレモナー)

383:デフォルトの名無しさん
12/12/24 15:36:07.71
>>380-381
それはお前が勝手に付け足した解釈
だからお前はアホなんだ

384:デフォルトの名無しさん
12/12/24 15:50:27.94
>>383
まだやってんのかよ。池沼。

385:デフォルトの名無しさん
12/12/24 15:53:53.96
日本語わからない朝鮮人が「教授」で正しいと暴れているのか?

386:デフォルトの名無しさん
12/12/24 15:54:56.23
>>385
死ねゴミチョン

387:桃白白
12/12/24 15:56:35.66
>>380
お前は道端で知人にあって知人から「よお大将、ひさしぶり」と声かけられたら
「ふざけるな俺は大将じゃない、俺の股間は足軽だ」とぶち切れるタイプ?

桃白白なら請われれば余裕でいっときの師匠となって桃白白がもつ
バブルソートの全技術を授けてやっちゃうけどね。桃白白なら余裕でそれ
くらいこなしちゃうけどね。そうやって桃白白の弟子たちが世に羽ばたいて
いってくれることが桃白白にとってなによりの幸せだから。

日本語では尊敬語や謙譲語を使うだけで上下関係というのは生じるわけで、
上下関係にないから教えることがありえないとするなら、お前はご教示頂けないでしょうか?
と言われたときにもどこの馬の骨じゃーと頭から湯気を出さざるを得ない状況に
置かれちゃうな。お前苦労人だな。というかクレーマーだな。

388:デフォルトの名無しさん
12/12/24 16:01:57.08
>>386
わっ、 朝鮮人が火病った。

>>387
> 上下関係にないから教えることがありえないとするなら
違うよ、上下関係が無いから授ける事はありえないと言っている。

389:桃白白
12/12/24 16:13:14.89
>>388
だったらお前は矢印でも神父でもないわけだから教示することもありえないだろ。
授けるという言葉だけが特別扱いされるものじゃない。

390:デフォルトの名無しさん
12/12/24 16:13:37.26
質問者は自ら敬語を使い下手に出ている。
これは回答者が上で質問者が下の上下関係。

391:デフォルトの名無しさん
12/12/24 16:15:24.90
バイクシェッドだね

392:デフォルトの名無しさん
12/12/24 16:20:47.40
>>389
日本語不自由なら引っ込んでなよ。矢印でも神父じゃなくても示すことはできる。

示す:
考え・気持ち・反応などが相手に伝わるように、何かの方法で表して見せる。
「誠意を―・す」「態度で―・す」「格段の進歩を―・す」

393:デフォルトの名無しさん
12/12/24 16:25:11.33
教授・教示の議論なんか今まで何度もも目にしたが
上下関係の有無を理由に誤用と主張してるやつは初めて見たわ

394:デフォルトの名無しさん
12/12/24 16:40:28.58
>>392
それは示せってときだろ。お前は答えを示せと言われたらそれに
答えることができるが、上下の関係がないことを理由に教授という
ことがありえないという立場なのだから、ご教示頂きたいと言われた
ときには敬われる立場、高位の立場にないから答えられないということになる。

395:デフォルトの名無しさん
12/12/24 16:48:01.83
>>369のネトウヨさんの調査結果が全てだ。
> きょう‐じゅ〔ケウ‐〕【教授】 [名](スル)
> 1 学問や技芸を教え授けること。「書道を―する」
すなわち、「ご教示下さい」でも「ご教授下さい」でも可。人称云々も上下関係云々もこじつけ。

お前等あんまりネラー用法を増やすなよ。広辞苑がまた軽薄に採用してしまうだろう。

396:デフォルトの名無しさん
12/12/24 16:54:10.15
ちょっと宿題解いてくれってのは、「学問や技芸」を教え授けるのとはちがうだろ

397:桃白白
12/12/24 17:00:11.30
>>396
プログラムの書き方を教えてくれってんだから情報技術という学問の分野であり
完全にテクニカル。そんなのは解釈次第でどうにでもなるわけで、わざわざ
あてはまらない解釈の仕方をするのがおかしい。桃白白はそれがおかしいと思うの。

398:デフォルトの名無しさん
12/12/24 17:01:17.99
萌えた

399:デフォルトの名無しさん
12/12/24 17:09:55.17
チェンジニアには技術の価値なんて分からないよ

400:デフォルトの名無しさん
12/12/24 17:23:20.52
>>395
そこに書かれている通りだ。
単に「学問や技芸を教えること」ではなく「学問や技芸を教え授けること」
授けるとは前に引用した通りに上下関係が存在する。

チョンやチャンコロにはわからないだろうが。

401:デフォルトの名無しさん
12/12/24 17:24:26.18
まだやってんのかwww

402:桃白白
12/12/24 18:26:59.58
>>364
ほい。俺のことはパイパイ教授と呼べ。
URLリンク(ideone.com)

403:デフォルトの名無しさん
12/12/24 18:29:09.04
篠沢教授に全部

404:デフォルトの名無しさん
12/12/24 18:34:33.91
政治スレから逃げてきた奴は、言葉に噛み付くくらいしか出来ないが、
悲しいことに日本語嫌いだから残念な結果に。

405:デフォルトの名無しさん
12/12/24 19:04:30.02
自分の投げた柱に飛び乗って移動するって物理的に可能なんですか

406:デフォルトの名無しさん
12/12/24 20:01:40.35
それが地球上なのか月面なのか
はたまた宇宙空間なのか

物理的に……と問うには
そこまで要件を指定せねば無意味

あとは自分が柱を投げて
誰が移動するのか
何が移動するのか
その他のこまごまとした要件を誤解のなきよう定義せねば
一切の発言は無意味

さらには物理的に可能という言葉の詳しい意味も
明確に説明せねば無意味

407:デフォルトの名無しさん
12/12/24 20:12:48.37
>>327
ありがとうございます。OpenAL がデフォルトで入っている様なので
SDL ではなく OpenAL について調べてみることにしました。

408:デフォルトの名無しさん
12/12/24 20:48:52.61
いえいえ

409:デフォルトの名無しさん
12/12/25 00:10:56.99
プログラム作るのまじで適性ない
就職は全く関係ない業種にしたいんだが
だめかな?もうプログラムは勉強したが上手くいかないことが
多すぎて自殺したいほど疲れた。

410:デフォルトの名無しさん
12/12/25 00:19:00.76
がんばれがんばれ
がんばればなんだってできる
にんげんの可能性は無限だ
がんばりが人間の力だ
最後の最後までがんばることが肝心だ
がんばった先に素晴らしいことがまっている
がんばることこそ人間の証だ
とにかくがんばれ
がんばってみろ

411:デフォルトの名無しさん
12/12/25 00:20:17.80
>>409
適正がないというほどやったのか?
学校の勉強程度じゃ

412:デフォルトの名無しさん
12/12/25 00:27:32.54
さっさと自殺しろってレスが多いと思いきや
>>410
>>411
ありがとう!

とにかくプログラム作って達成感なり感じれるようになったら
孤独とか不安ってのは無くなりますかね?
社会に活かせなくてもいいけど金にならなくていいけど
精神的に満たされたい

413:デフォルトの名無しさん
12/12/25 00:41:20.99
うん

414:デフォルトの名無しさん
12/12/25 00:55:05.98
自分の作ったプログラムを我が子のように感じる人もいるそうだな。
何か分かる気がするわ。

415:デフォルトの名無しさん
12/12/25 01:08:18.92
ほとんど大きいミスしないプログラマっているらしいな
逆にミスする奴は死ぬほどするっていう


情熱大陸に出てた奴はミス少ないらしい
適性があると心は満たされるだろうなぁ

416:デフォルトの名無しさん
12/12/25 01:13:23.17
10回間違う奴か1回しか間違わない奴のどれか
間は無いんだよなぁ

417:デフォルトの名無しさん
12/12/25 01:25:57.26
間違ったっていいんだよ、リリース前までに発覚すれば
間違ったっていいんだよ、同じ間違いを繰り返さなければ

418:デフォルトの名無しさん
12/12/25 10:05:26.60
ミスの影響の大小は条件が同じならば単なる運。

419:デフォルトの名無しさん
12/12/25 10:43:54.14
運だね

420:デフォルトの名無しさん
12/12/25 12:41:42.31
>>13,110,217,225,246,252,290,293,355,363,419

なんだか妖怪っぽい

421:デフォルトの名無しさん
12/12/25 12:43:52.98
そうだね

422:デフォルトの名無しさん
12/12/25 12:47:34.04
「妖怪っぽいね」って言って欲しかった

423:デフォルトの名無しさん
12/12/25 14:30:44.05
やだね

424:デフォルトの名無しさん
12/12/26 00:55:07.38
俺はコード書くだけでエクスタシー感じるから天職なのだろうか

425:デフォルトの名無しさん
12/12/26 01:05:57.77
指示されたフローに黙々とエラー対処を埋め込めるドカタ気質が有るなら天職だね

426:デフォルトの名無しさん
12/12/26 05:22:39.12
>>417
一見、優しそうにみえる、酷い言葉

427:デフォルトの名無しさん
12/12/26 06:39:52.78
>>412
プログラマの一部は宗教から入るため、必然的に不安や孤独感が無くなります。

428:デフォルトの名無しさん
12/12/28 13:23:47.27
すいません。
あるRGBの色と、別のRGBの色とがどのくらい近似しているか、
ということを評価したいんですが、どういう計算結果を評価するのがベストですか?
3次元上の2点間距離を求める公式に、R,G,Bを当てはめるというのは考えましたが、
それ以外にもっと良い方法はありますでしょうか。

429:デフォルトの名無しさん
12/12/28 16:40:43.94
>>428
つ色空間URLリンク(ja.wikipedia.org)
つ均等色空間・L*a*b*表色系 「シーラブ」URLリンク(ja.wikipedia.org)

もっとも単純な変換公式は定義できないように読める。
色とは、所詮人間のもつ3種の視細胞(錐体細胞)の刺激量の組み合わせでしかなく、色空間はそれら刺激量を数値化したものとして定義するのが本義だから、のようだ‥‥
たしかに困った、宿題 スレリンク(tech板:447番)ができるとおもったのだけど。

430:デフォルトの名無しさん
12/12/28 16:51:19.25
RGB(50a000)を、RGB(009700)とRGB(8b7300)の近いほうの色で置き換えようと思ったら、
3次元上の2点間距離の公式に当てはめると、
RGB(50a000)とRGB(009700)は、sqrt(6481)に、
RGB(50a000)とRGB(8b7300)は、sqrt(5506)になって、
後者の方が似た色と判定されてしまいますが、
実際の色を見てもらえれば明らかですが、前者の方が近いです。
どうしたらいいですか

431:デフォルトの名無しさん
12/12/28 17:21:48.42
だから別の色空間に変換してから距離を決定する

432:デフォルトの名無しさん
12/12/28 18:01:45.78
どの色空間が一番いいんすか
とりあえずYUBに変換してから、3次元上の2点間距離を求める公式に
YUBを当てはめてやってみましたが、RBGよりかはよくなりましたが、まだいまいちです。

433:デフォルトの名無しさん
12/12/28 18:02:35.86
×YUB
○YUV

434:デフォルトの名無しさん
12/12/28 19:14:09.52
色相が近いのを選ぶようにしたら?

435:デフォルトの名無しさん
12/12/28 19:25:35.85
HSVだは

436:デフォルトの名無しさん
12/12/28 20:11:03.51
ライブラリの静的リンクと動的リンクがよく分かりません
動的リンクは実行時に読み込むもので、静的リンクは実行ファイルに既に含まれているものって解釈でいいですか?
例えばC言語で使うstdio.hはコンパイル時には必要だけど実行時には必要ないので静的リンクですか?
phpなどの言語でincludeしてるのは動的リンクでしょうか。
stdio.hのライセンスを見たらLGPLで、LGPLは動的リンクの時だけ派生ソフトと見なさないらしいので
stdio.hをincludeしてるプログラムは全てLGPLライセンスに従って公開する必要があるのですか?
よろしくお願いします

437:デフォルトの名無しさん
12/12/28 20:24:28.67
.Hファイルはリンクとまったく関係ありません

438:デフォルトの名無しさん
12/12/28 20:32:30.49
僕の解釈だと.hが静的リンクっぽく感じるんですが、どこが間違っているんでしょう?

439:デフォルトの名無しさん
12/12/28 20:37:35.10
includeはプリプロセス

440:デフォルトの名無しさん
12/12/28 20:45:32.02
距離*(判断(オマエ or 拾って来た)基準になるz値)

441:デフォルトの名無しさん
12/12/28 21:21:38.15
>>436
Cコンパイラの仕組みっていうのは

1.プリプロセッサ(.hファイルの読み込みとマクロ展開)
2.コンパイル(.cファイルを.objに変換)
3.リンク(.objファイルを実行形式にリンク)

という仕組みになっている。.hファイルはコンパイル以前に
展開されるものだからリンクには関係ない。

スタティックリンクはライブラリに含まれる.objファイルを
リンク時に実行形式に含めるもの。

ダイナミックリンクはライブラリに含まれる.objファイルを
実行時に読み込むもの。

442:デフォルトの名無しさん
12/12/28 21:31:36.13
えっ?

443:デフォルトの名無しさん
12/12/28 21:35:43.30
>>436
ライブラリの実態はobjファイル

コンパイルした時に一緒にするのが静的リンク
実行するときだけ一緒になるのが動的リンク

速度は静的リンクに分があって
メモリ効率や差し替えには動的リンクに分がある

嫁=静的リンク
セフレ=動的リンク

444: ◆QZaw55cn4c
12/12/28 22:57:08.11
でもライブラリとオブジェクトファイルはやっぱり区別したくなるよね。

445:デフォルトの名無しさん
12/12/28 23:21:28.17
ここみると…自分もはじめとっつきにくい部分ではあるよね
ライブラリとかコンパイルやリンクの概念。

446:デフォルトの名無しさん
12/12/28 23:32:51.57
手動で.EXE/実行ファイル、.OBJ/.LIB/.o、.DLL/.so の各ファイルを一通り作ってみて使ってみればわかるじゃない

447:デフォルトの名無しさん
12/12/28 23:35:28.86
>>446
自分でやれ

448:デフォルトの名無しさん
12/12/28 23:36:09.21
>>447
バイナリエディタで機械語でも入力してろカス

449:デフォルトの名無しさん
12/12/28 23:43:22.51
>>447
自分でやったよ?

450:デフォルトの名無しさん
12/12/29 05:40:16.07
cygwinでコンパイルすると95%くらいの確率で
なんかだらだらと文章がでてやっとコンパイルされるんだが、
これ表示させないようにする方法とかあるのか?
だらだらとでる文章は
[main] gcc~とか[main] gcc-4~
とか長々としたもの。
警告文とかではない。

451:デフォルトの名無しさん
12/12/29 07:48:49.99
>>450
そのメッセージを貼ってみ

452: ◆QZaw55cn4c
12/12/29 09:35:45.69
それって g++ のテンプレート関係じゃない?たしかにアレはまったく持って意味不明というか
それはそうと gcc4 から specs はなくなったそうで、じゃ、だれが -v をデフォルトオプションにふくませたんだろうね

453:デフォルトの名無しさん
12/12/29 09:37:40.77
釣り質問なので晴れませ~んwwwww

454:デフォルトの名無しさん
12/12/29 15:47:47.06
0 [main] collect2 6904 fhandler_disk_file::fixup_mmap_after_fork: requeste
d 0xFFE90000 != 0x0 mem alloc base 0x0, state 0x10000, size 65536, Win32 error 4 87
347 [main] collect2 6904 C:\cygwin\lib\gcc\i686-pc-cygwin\4.5.3\collect2.exe
: *** fatal error in forked process - recreate_mmaps_after_fork_failed

>>450だけど、こんなかんじだ。
けせないのかこれは?

455:デフォルトの名無しさん
12/12/29 17:25:40.50
ファイルをストリームであつかうのはなぜなんでしょうか
ランダムアクセスなシーケンスですよね
ネットワークやパンチカードなら順次送られてくる流れという見方がしっくりくるのもわかります
でも現代的なファイルまでストリームでやる意味は無いと思います

456:デフォルトの名無しさん
12/12/29 17:41:19.57
現代的なファイルってのは
ひとつ10GBとか50GBあるファイルのことか?

457:デフォルトの名無しさん
12/12/29 22:18:49.67
>>455
意味がないと思うなら、勝手に止めればいいと思う。
ただし、その考えを他人に押しつけるのだけは勘弁してくれ。

458: ◆QZaw55cn4c
12/12/29 22:31:44.52
>>455
別にランダムアクセスしたければいかようにもできるし、でもランダムアクセスって固定長前提の様な気がするんですけど、固定長って今でも現役なんでしょうか?>プロの方

459:デフォルトの名無しさん
12/12/29 23:01:31.93
mallocでポインタのポインタを作って、それを関数に引数として渡した後、どこでfreeをするのが正解ですか?

460:デフォルトの名無しさん
12/12/29 23:11:07.91
まずはお前はどこが政界だと思っているんだ
それを書けよ

461:デフォルトの名無しさん
12/12/29 23:15:23.73
使い終わったらすればよい
その後すぐ終わるプログラムならいちいちしなくていいよ

462:デフォルトの名無しさん
12/12/29 23:51:00.70
>>459
呼び元でmallocするなら呼び元でfree、呼び先でmallocするなら、解放用の関数作ってそこでfreeさせるようにしている。

463:デフォルトの名無しさん
12/12/30 00:12:14.87
>>459
main以外★mallocの後にfree不要と言うバカいるの?
スレリンク(tech板)

464:デフォルトの名無しさん
12/12/30 10:42:14.45
>>459
基本的にはmallocしているところと対称の位置でfreeするよう考えながらプログラムするといい。
例:
ブロックの最初でmallocして、最後でfreeする。
for () {
p = malloc();
...
free(p);
}

最後に利用したところでfreeするという方法もあるが、ダングリングポインタが
発生する可能性があがるのでお勧めしない。

465:デフォルトの名無しさん
12/12/30 12:02:41.28
途中でリターンしたいやろうが

466:デフォルトの名無しさん
12/12/30 13:18:03.61
そういうつまらない突込みしているキミが基本を外すのは10年早い。

467: ◆QZaw55cn4c
12/12/30 13:22:56.91
>>464
その作法はwin32apiでも(一様ですが)仮定されているので、それはそれで一つのやり方だとは思うですが、それを守っていると正直つらいときがあります。
(くどくど言い訳16行を省略)
もうBoemGCでいいんじゃないですかー

468:デフォルトの名無しさん
12/12/30 13:25:11.94
お前はレス禁止。うんこスレに引っ込んでろ。

469:デフォルトの名無しさん
12/12/30 14:02:07.61
今日日、win32apiを叩かないとダメな仕事って何だろう

470:デフォルトの名無しさん
12/12/30 14:04:40.87
>>459
Foo** make_foo()
void delete_foo(Foo** foo)
のように領域を確保する関数、関数型マクロを用意する

471:デフォルトの名無しさん
12/12/30 14:44:05.14
仕様ですが
安倍内閣は危ない核

472:デフォルトの名無しさん
12/12/30 17:54:23.82
一様じゃなく一応でしょ

473:桃白白
12/12/30 19:48:47.81
バイナリツリーの実装について教えてください。
URLリンク(uploda.cc)
バイナリツリーに値が画像のように存在するときに再帰を使わずにこの形式で出力したいです。
  6
 5
  4
3
  2
 1
  0

書いたコードはこれです。このTree_dumpをどのように実装したらいいのか教えてください。
桃白白困ってます。教えてください。お願いします。
URLリンク(ideone.com)

474:デフォルトの名無しさん
12/12/30 20:19:45.14
LIFOつくって退避する。
チンカスが寄ってくるから続きはうんこスレでやれ。

475:桃白白
12/12/30 20:38:38.59
>>474
えーわかんなーい、桃白白そんな適当な説明じゃわかんなーい。
LIFOてスタックでいんでしょ。スタックをどう使うの? そこんとこ教えて。

476:デフォルトの名無しさん
12/12/30 20:53:27.63
push 3
push 5
push 6
if(行き止まり)  pop & print // 6
戻った      pop & print // 5
push 4
if(行き止まり)  pop & print // 4
戻った      pop & print // 3
push 1
push 2
if(行き止まり)  pop & print // 2
戻った      pop & print // 1
push 0
if(行き止まり)  pop & print // 0

という感じかな

477:デフォルトの名無しさん
12/12/30 21:50:24.28
動作の正しさは保証しない
URLリンク(ideone.com)

478:デフォルトの名無しさん
12/12/30 22:16:42.77
> 再帰を使わずに
> 再帰を使わずに
> 再帰を使わずに
> 再帰を使わずに
お題も理解せずにドヤ顔でウンコードを張り付けるバカってなんなの?

479:桃白白
12/12/30 23:17:03.74
>>476
見た。桃白白いま考えてる。超考えてる。

>>477
桃白白、スタックオーバフローが超怖いから再帰しないやりかたを知りたいの。

480:デフォルトの名無しさん
12/12/31 00:05:28.96
>>479
再帰関数を自作スタックを使うように書き換えるだけでよくね?
基礎だからググればサンプルも山ほど見つかるんじゃね?

481: ◆QZaw55cn4c
12/12/31 00:08:51.11
>>479
>スタックオーバフローが超怖いから
平衡二分木が現実的かと

昔は同じくスタックオーバーフローが超怖いので非再帰にこだわっていたこともありましたソースが発掘できたらあげます

482: ◆QZaw55cn4c
12/12/31 00:11:12.94
>>474
hello, world!

483: ◆QZaw55cn4c
12/12/31 00:19:50.61
>>479
みつけた、あげる
URLリンク(codepad.org)

484:桃白白
12/12/31 02:19:23.24
>>476
できたー、やったー、あけおめー。ありがとうございました。
URLリンク(ideone.com)
状態変数を使って右をたどっているのか左をたどっているのか
わけるようにした。

485:桃白白
12/12/31 02:40:30.37
>>483
もらう。gotoでできちゃうわけ、gotoすげー半端ねー。
平行二分探索木はバランスとっちゃうやつね、知ってる。

486: ◆QZaw55cn4c
12/12/31 02:51:27.55
>>485
いや、これは struct Node に作業用変数を設け、巡回時(int lib_output(struct Lib_node *p, int (*out_f)(void *)))に戻り位置を記録しておくもの。
これといった必要性もなく goto を使ってしまったと思っています。いずれにせよ当時は二分木の危険性を過大視しておりました。DOSだったし。

487:桃白白
12/12/31 06:37:12.05
状態変数もいらないのか。インデントしなければこれでできちゃうな。

void a(Stack s, Node n) {
 while (n != NULL) {
  Stack_push(s, n);
  n = n->right;
 }
}

void Tree_dump(Tree tree) {
 Stack s;
 Node n;
 
 s = malloc(sizeof(struct Stack));
 a(s, tree->root);
 while (s->root != NULL) {
  n = Stack_pop(s);
  printf("%d\n", n->value);
  a(s, n->left);
 }
 free(s);
}

488:デフォルトの名無しさん
12/12/31 07:40:53.44
--
 Stack s;
 s = malloc(sizeof(struct Stack));
--
腐ってやがる。

489:桃白白
12/12/31 08:02:57.83
>>488
         ____
       /      \  
     /  _ノ  ヽ、_  \ そんなこと言われても
    /  (●)  (●)   \    桃白白どうすりゃいいのさ
    |     (__人__)    |
    \     ` ⌒´     /
   /´           `\
  /  /          l  l   .
__l  l_.[] _____/_/__
  \, ´-'ヽ
    ヾ_ノ
     |
     |
     |__   コロ・・・・
    _____\    コロ・・・・
   ()__)」

490:デフォルトの名無しさん
12/12/31 08:04:52.91
s が NULL かどうかチェックしろ、ということでは?

実質的にいるのか?

491:デフォルトの名無しさん
12/12/31 08:26:14.48
typedef struct Hoge *Hoge って気持ち悪くない?

492:デフォルトの名無しさん
12/12/31 09:30:14.89
>>489
今すぐ、死ねばいいよ。↓これも
> Tree tree = malloc(sizeof(struct Tree));
> Tree_add(tree, 3);

493:デフォルトの名無しさん
12/12/31 09:30:30.12
うん

494:桃白白
12/12/31 09:48:02.55
>>492
なんでー? 意味わかんなーい。

495:デフォルトの名無しさん
12/12/31 09:50:30.28
mallocの戻り値はポインタだけど
struct Treeとかstruct Stackはポインタなの?
ポインタだとするとmallocの引数がポインタのサイズになってておかしいよ

496:デフォルトの名無しさん
12/12/31 09:53:02.77
あ、ちゃんと読めてなかったtypedefしたのとstructのままので分けてるのか
気にせんといてー

497:デフォルトの名無しさん
12/12/31 10:03:11.04
>>494
お前を含めて、わからないバカ共は死んだ方がいい。
死ぬのがいやならウンコスレでウンコこねて遊んでろ。出てくるな。

498:デフォルトの名無しさん
12/12/31 10:26:26.81
>>491
typedefしないと、変数を定義する際にイチイチstructって書かないとダメだろ

>>494
Tree make_tree(){ return (Tree)malloc(sizeof(struct Tree)); }
free_tree(Tree *tree){ free(tree); }

499:デフォルトの名無しさん
12/12/31 10:28:37.81
vipのAAって久々に見たけど、他人をイラだたせるのにスゴク効果的だな

500:デフォルトの名無しさん
12/12/31 10:37:33.69
> typedefしないと、変数を定義する際にイチイチstructって書かないとダメだろ
お前もバカだな。そういう意味じゃない。

501:デフォルトの名無しさん
12/12/31 10:39:12.44
>>498
typedefすること自体に文句つけてると思ったのかよw

502:デフォルトの名無しさん
12/12/31 10:42:41.43
>>498
お前破壊的にバカ。こんなバカ久しぶりに見た。そういう事じゃない。www
> >>494
> Tree make_tree(){ return (Tree)malloc(sizeof(struct Tree)); }
> free_tree(Tree *tree){ free(tree); }

503:デフォルトの名無しさん
12/12/31 15:20:00.79
動的二次元配列を0で初期化したいのですがfor
でまわす以外に方法ってなにかあるのでしょうか??

504:デフォルトの名無しさん
12/12/31 15:23:36.68
calloc

505:デフォルトの名無しさん
12/12/31 15:28:00.37
>>503
memset

506:デフォルトの名無しさん
12/12/31 16:02:31.09
優しい奴が多いな。

507:デフォルトの名無しさん
12/12/31 17:02:34.81
エディタ何使って開発してますかー
VisualStudioはどうでもいいので、回答しなくて結構ですよ

508:デフォルトの名無しさん
12/12/31 17:03:23.74
>>502
他人を煽りたいだけだろ

509:デフォルトの名無しさん
12/12/31 17:04:23.68
>>507
emacs,vim
この話終わり

510:デフォルトの名無しさん
12/12/31 17:13:13.38
>>508
微妙に違う。PGの適性の無いバカを煽ってるだけ。
おい、白白。おまえがクソコード撒餌したおかげで記録的なバカが釣れたぞ。
反省文書け。

511:デフォルトの名無しさん
12/12/31 17:19:40.07
>>504
>>505
ありがとうございます

512:デフォルトの名無しさん
12/12/31 17:20:47.70
>>507
漢は黙ってcat

513:デフォルトの名無しさん
12/12/31 17:23:45.87
>>510
>>492の解説は?

514:デフォルトの名無しさん
12/12/31 17:32:31.81
ああ、>>488から>>497までか

515:デフォルトの名無しさん
12/12/31 17:39:19.61
>>488>>492は別人だ。
解説が必要なバカも同罪。わかるまで考えて遺書か辞表か反省文書け。
しかもおせっかいな通りすがりがヒント出してるのに。

516:デフォルトの名無しさん
12/12/31 17:43:23.85
malloc,freeの直書きが気持ち悪くてつい

517:デフォルトの名無しさん
12/12/31 17:46:09.12
優越感に浸っちゃってるつもりなんだろうな、かわいそうな人

518:デフォルトの名無しさん
12/12/31 17:46:12.29
その程度じゃ「PGの適性が無いバカ」とまでは罵らねーよ。

519:デフォルトの名無しさん
12/12/31 17:46:49.60
普通は関数マクロでメモリ取るよね?

520:デフォルトの名無しさん
12/12/31 17:49:13.17
>>517
適性の無いバカは哀れだねえ。気づいて無いのは白白と>>498の二人だけだろうな。

521:デフォルトの名無しさん
12/12/31 17:50:26.77
日常的にcなんて触るもんじゃないし

522:デフォルトの名無しさん
12/12/31 17:50:50.42
具体的に書けないのは、指摘され返されたら面目丸つぶれだからなの?

523:デフォルトの名無しさん
12/12/31 17:52:12.74
三人ぐらい居てカオス

524:デフォルトの名無しさん
12/12/31 17:52:17.78
>>518
まず罵ろうというのがおかしくね?
幼少時代になんかあったの?

525:デフォルトの名無しさん
12/12/31 17:54:54.79
だいたいみんな、興味を持ち出して、BSD付属のコマンドを覗いたぐらいから、
大学を卒業してM$AccessやPHPで仕事をする

526:デフォルトの名無しさん
12/12/31 17:57:08.87
>>524
さあ、なんでだろうね。わからないけどバカみると吐き気がする。

527:デフォルトの名無しさん
12/12/31 17:59:53.30
今日日、cで仕事をしようなんて、大体は幼少時代に何かあった人たち

528:デフォルトの名無しさん
12/12/31 18:01:58.14
typedef struct Hoge *Hoge;ってどっかの流派であるの?
C++に慣れた頭からすると、C++だとstruct HogeはHogeという型名でもアクセスできるから、混乱しそうだなとは思うんだけど。

529:デフォルトの名無しさん
12/12/31 18:04:43.64
cじゃ変数定義するときにstruct付けないとエラー出るよ
gccないの?

530:デフォルトの名無しさん
12/12/31 18:05:11.20
確かに俺も混乱しそうだと思う
初めてパッと見たときに勘違いする

というのはわかるが、>>515には何がダメなのか解説してほしい
typedefが理解できてないだけなんじゃないか?

531:デフォルトの名無しさん
12/12/31 18:21:52.65
はあ? 気持ち悪いtypedefだがそんな事で罵っていない。
>>488は引用が一行足りないので、もしかするとそれで煽ってたのかもしれないが、
>>492みて疑問を持たないバカは死んだ方がいい。

>>492
> Tree tree = malloc(sizeof(struct Tree));
> Tree_add(tree, 3);

532:デフォルトの名無しさん
12/12/31 18:22:19.90
アマチュアはプロジェクトに沿ったコーディング規約を使えば良い
自動車業界なんかだと、MISRA-cなり規格やら検査ツールがあるらしい
きっと、年末年始や土日祝日も開発室に篭って仕事なんだろう

533:デフォルトの名無しさん
12/12/31 18:22:55.93
>>519
どんな普通?

534:デフォルトの名無しさん
12/12/31 18:24:22.45
>>533
BSDなり、メモリ確保するあたり
あんなの幼少時に何かあった人たちだよ
計算機に育てられたか、計算機の中で生まれたか

535:デフォルトの名無しさん
12/12/31 18:25:12.32
レビューの達人を召喚しよう。w
スレリンク(tech板:420番) 出てきて指摘してやれよ。

536:デフォルトの名無しさん
12/12/31 18:29:39.44
>>531
具体的にコードで指摘してみろよ、バーカww

537:デフォルトの名無しさん
12/12/31 18:35:14.00
やなこった。悔しいかバカ。w

538:デフォルトの名無しさん
12/12/31 18:36:47.84
自信がないからできないだけ

539:デフォルトの名無しさん
12/12/31 18:40:32.84
>>533
#define MALLOCしとくとメモリアロケータをごっそり入れ替える事が容易。
ツールキットによっては独自のメモリアロケータ使う事が必要な場合もあるので、
オープンソースな開発ではかなり普通に使われているテクニック。

540:デフォルトの名無しさん
12/12/31 18:44:40.49
>>538
うんこQzが得意とする炎上学習法。ww
「コードコード」と必死に連呼するさまもQzそのもの。
というわけで、修正

> 適性の無いバカは哀れだねえ。気づいて無いのは白白と>>498とバカのQzの三人だけだろうな。

541:デフォルトの名無しさん
12/12/31 18:54:22.84
自  信  が な  い の で  で き ま せ  ん

542:デフォルトの名無しさん
12/12/31 18:56:16.99
悔しそうだな。バカ。
白白が気付いて反省文書くまでまってろ。w

543:デフォルトの名無しさん
12/12/31 18:58:26.12
意訳:自信がないのでできません

544:デフォルトの名無しさん
12/12/31 19:00:02.87
意訳: バカでわからないので教えてください。

545:デフォルトの名無しさん
12/12/31 19:01:36.95
意訳:バカなので答えることができません

546:デフォルトの名無しさん
12/12/31 19:02:33.84
バカなので句点の後に草を生やしてしまいます

547:デフォルトの名無しさん
12/12/31 19:11:35.86
桃白白ってただの無知な初心者だったのか
コテハン使うくらいだからそれなりに骨のある奴かと思ってたわ

548:デフォルトの名無しさん
12/12/31 19:28:40.38
意訳: バカでわからないので教えてください。

549:デフォルトの名無しさん
12/12/31 19:47:40.78
意訳:バカですが恥ずかしいコードを晒すことは何があっても回避します

550:デフォルトの名無しさん
12/12/31 19:51:32.31
意訳: 無知でバカなので>>483のようなウンコードも平気で晒します。

見た瞬間めまいがしてすぐに閉じた。w

551:デフォルトの名無しさん
12/12/31 19:54:38.85
意訳:バカなのでコテハンの存在が疎ましく難癖つけて憂さを晴らします

552:デフォルトの名無しさん
12/12/31 19:56:41.71
バカなので肥溜めに自ら入り込んでしまいます

553:デフォルトの名無しさん
12/12/31 20:03:45.18
バカなのでQzと同じ土俵に立っていることがまるで理解できていません

554: ◆QZaw55cn4c
12/12/31 20:06:13.63
>>550
ごめんね
気づけのお薬あげる、よく利くよ つURLリンク(upload.wikimedia.org)

555:デフォルトの名無しさん
12/12/31 20:31:52.72
Qzじゃ無いとしても、コードコードと騒ぐ炎上学習法を真似て実践するクズだから、
こんな簡単な事も気づけないんだろうな。惨めすぎる。

白白はとっとと反省文書くように。その他のQzを含む気付けないバカ共は遺書を書け。

556:デフォルトの名無しさん
12/12/31 20:36:49.86
自称霊感が強い、なので他の人には見えないものが見えてしまいます

557:デフォルトの名無しさん
12/12/31 20:52:24.83
>>482だけじゃバカにはわからないらしいからもう少しヒントをやろう。
これがおかしいコードだと気づけないバカは年越さずに死ね。

> Tree tree = malloc(sizeof(struct Tree));
> Tree_add(tree, 3);
> Tree_add(tree, 1);

558:デフォルトの名無しさん
12/12/31 20:56:34.63
何でこんなに荒れるんやろねぇ
まぁ何にしろ書き込んでるのはひとりやろけどね

559:デフォルトの名無しさん
12/12/31 21:04:45.51
バカが分をわきまえればいい。

560:デフォルトの名無しさん
12/12/31 21:05:55.30
>>488あたりから自演がひどい

561:デフォルトの名無しさん
12/12/31 21:13:35.26
オレ(>>492)は>>488じゃないわけだが。自演に見えるのはバカの証拠。
でも、教えてもらったらきっと死にたくなるよ。えれー基本的な事だから。

こんなバカどものウンココードで世の中は動いてるんだろうと想像すると
こっちが死にたくなってくるけどな。

562:デフォルトの名無しさん
12/12/31 21:15:34.52
>>557

563:デフォルトの名無しさん
12/12/31 21:15:42.04
> こんな××どもの×××コードで某巨大掲示板は動いてるんだろうと想像すると
> こっちが死にたくなってくるけどな。

564:デフォルトの名無しさん
12/12/31 21:16:58.26
>>561
とっとと思いを遂げろ
自意識過剰のバカ

565:デフォルトの名無しさん
12/12/31 21:18:33.99
>>561
くだらないやり取りを、自演という表現に換えただけですよ。

566:デフォルトの名無しさん
12/12/31 21:21:04.32
>>557で気付かないバカは分をわきまえた方が生きやすいぞ。

567:デフォルトの名無しさん
12/12/31 21:22:36.54
入門編スレで息巻く先輩、マジパネーっす

568:デフォルトの名無しさん
12/12/31 21:29:06.64
入門者が質問するスレであって、バカが答えるスレじゃ無いわけだ。

569:デフォルトの名無しさん
12/12/31 21:36:00.25
答えないやつがなに偉そうに言ってんの?って感じ

570:デフォルトの名無しさん
12/12/31 21:37:47.54
×答えない
○答えられない

571:デフォルトの名無しさん
12/12/31 21:45:15.59
自称回答者のバカには教えてやらない。

572:桃白白
12/12/31 21:50:35.76
>>528
typedef struct Hoge *Hogeの流派はないんじゃね。すくなくとも桃白白は
同じことをする人を知らない。マジでかーやめたほうがいいのか。
C++だとtypedefでどんな名前にしちゃうの?

573:デフォルトの名無しさん
12/12/31 21:51:43.85
マジカッケーっすww
ところでわりんすけどタバコ買ってきてもらえません?

574:デフォルトの名無しさん
12/12/31 22:06:11.68
int **matrix;
matrix = (int **)calloc(gyo,sizeof(int));
if (matrix==NULL){
exit(1);
}
for (i=0; i<gyo; i++) {
matrix[i] = (int *)calloc(retu,sizeof(int));
if (matrix[i]==NULL)
{
exit(1);
}}
すみません、これなんですが、
callocで配列は確保できているみたいなのですが
ところどころ(5こおきに等)0になりません
間違いをおしえてくださいmm

575:デフォルトの名無しさん
12/12/31 22:12:57.28
>>574
もしかして
sizeof(int) != sizeof(int*)

576:デフォルトの名無しさん
12/12/31 22:15:33.35
>>572
構造体とそれへのポインタを同じ名前にするとかキチガイ沙汰。

とっとと>>557で指摘されてるのなおして反省文書くように。
バカ共が必死で答えを待ってるぞ。

577:デフォルトの名無しさん
12/12/31 22:23:42.95
キチがキチと呼ぶ

578:デフォルトの名無しさん
12/12/31 22:27:22.17
>>576
変数じゃねえだろ型にtypedefしてるだけだ

579:デフォルトの名無しさん
12/12/31 22:33:58.00
>>575
すみません(int*)って何をあらわしてるんですか??

とりあえずsizeof(int) == sizeof(int*)でした

580:デフォルトの名無しさん
12/12/31 22:44:27.57
>>578
更にわかってないバカが参入

581:デフォルトの名無しさん
12/12/31 23:03:05.22
キャストもわからないんじゃ、入門書を3冊ぐらい読んでから
またくるんだね。

582:デフォルトの名無しさん
12/12/31 23:07:45.20
>>580
Cの規格書読み直せバカ
あ、読んでねえからそんな発言がでんだな

583:574
12/12/31 23:44:20.84
>>581
sizeof(int *)
今までわからずにつかってましたが、というかつかってないが
後ろの部分ってキャストだったんですね
(int **)calloc
の(int **)もよくわかりません、**ってのが特にわかりません
どうかおしえてください

584:デフォルトの名無しさん
12/12/31 23:46:15.74
sizeof はキャストじゃないっぺ。

585:デフォルトの名無しさん
12/12/31 23:55:19.30
>>582
お前がバカって事は良くわかってるから、そんなに必死でアピールしなくてもいい。
もうすぐ年越すけどやっぱりわからないんだろ。さすがバカ。wwww

586:デフォルトの名無しさん
12/12/31 23:55:46.00
>>574
再現する最小構成のソースを貼ってくださいと何度言わせれば
おそらくmatrixへのアクセスミスだろうとエスパーしてみた
5個おきではないので違うっぽいけど
URLリンク(codepad.org)

>>583
int**は読んでそのまま、intへのポインタへのポインタ。でっていう。
ポインタはCで挫折しやすい所だから、まずはしっかり勉強した方がいい。
ここで一から聞くのではなく、図などで分かりやすく説明してるサイトで勉強して、
そのうえで分からない所をここで聞け。
キャストなども同じ。基礎を勉強しないでノリでサンプル動かしてる感じかい?

587:574
12/12/31 23:59:06.50
>>584
ですよねー
sizeof(int *)
は(int *)のサイズ求めてるだけですよねー;
もしかして581って違う人にいってたとしたらはずいな;

588:574
13/01/01 00:04:44.35
>>586
ありがとうございます、すいません
はろうとしたのですが、なんか忍者修行中で、リンクはれませんでした;;

ですね。勉強します。
苦しんで覚えるC言語入門(サイト)
は一通りしました。

やり方ググッてとりつけてるかんじです。

589:574
13/01/01 00:08:23.66
URLリンク(codepad.org)

590:574
13/01/01 00:09:35.95
すみません、OTZはれましたOTZ

591:デフォルトの名無しさん
13/01/01 00:10:48.30
最新のヴァkはh抜かすのもできねーのかよ

592: ◆QZaw55cn4c
13/01/01 00:12:39.43
>>572
やりたいことは理解したつもりです。結論からいうと、>>484 のまずいところは以下の2点

1) malloc() して得た領域が 0 クリアされていることを仮定している。
> Tree tree = malloc(sizeof(struct Tree)); 
の直後に
> Tree_add(tree, 3);
をおいてしまっている。たぶん、c++/java のコンストラクタにあたるものを C にするときに書き落としてしまっているかと。

2) malloc() の帰り値はチェックしたほうがいいんじゃないかな?

>typedef struct Hoge *Hoge
名前空間が違うからねえ可能といえば可能だけれども。もう C++/java 的な考え方に染まっておられるんですね。
確かに非再帰に書けばスタックオーバーフローの恐怖からは逃れられるけれども、この問題の場合も私ならば再帰的に書いてしまう。
URLリンク(ideone.com)
木構造は再帰的ゆえに木構造を扱うアルゴリズムも再帰的に書いて楽をしたくなってしまいます。
スタックオーバーフローは別の手段で回避しようかと、リンク時にスタックサイズを指定したり、ああ、最近 AVL 木を添削してもらったのでぼちぼち使い始めています。

あけおめ!

593: ◆QZaw55cn4c
13/01/01 00:25:38.57
>>539
なるほどねえ、現に私ことQZも早々とアロケータはデバッグのための自前物にしちゃってるからねえ、オープンソースものに参加するのもいいかもしれませんね。

594:574
13/01/01 00:30:39.17
591
最近のバカはその後httまで抜かすも戻るを押し書き込んだ模様です

595:デフォルトの名無しさん
13/01/01 00:40:29.53
h抜かす必要ないのに

596:桃白白
13/01/01 00:45:04.73
>>592
rootにNULLを入れるのが抜けてるってことね。
mallocのNULLチェックは質問の本旨と関係ないから省いた。
AVL木の添削したのはじつは桃白白だったりしちゃうんだけど、削除の方はできた?

597:デフォルトの名無しさん
13/01/01 00:53:33.69
>>596
その節はありがとうございます。:-)
今のところはうまくいっているようですが、まだ自分で再構成できるまでには至っていない、削除ルーチンはまだだし、当分は無理かなあ、まだ怖くて怖くて。

598:桃白白
13/01/01 01:14:25.79
>>597
二分探索木の削除はわかる? AVL木の削除はそれに平衡処理を追加するだけだ。

599: ◆QZaw55cn4c
13/01/01 01:27:29.70
>>598
二分木の削除はOKですが、木回転が一回で終わらないのが今のところの難所になっています。ああ、これは本のサンプルを見たほうがはやいかもしれませんね。

600:桃白白
13/01/01 02:58:17.72
>>599
削除時に回転が必要になるのは左右の木の高さの差が2になったとき。
左右の木の高さの差が2になるのは木の高さが1減ったとき。
木の高さが1減るのは木のバランスがイーブンになったとき。

木のバランスがイーブンになるのは
  左に傾いている木の左のノードを削除したとき。
  右に傾いている木の右のノードを削除したとき。
  木の回転が行われたとき。

木のバランスがイーブンでなかったら木の高さは変わってないわけだから
平衡がとれてるってことでその上のノードでは回転は必要なくなる。

削除時の回転は、回転後にバランスがイーブンになるものと、
回転後にバランスがイーブンにならないものとがある。

分類するとこうなる。
URLリンク(i.imgur.com)

ノードのバランスをチェックすることで左への回転か右への回転かを
わけることができる。子のバランスをチェックすることで一重回転か
二重回転かをわけることができる。一重回転のときは子のバランスを
チェックすることで回転後のバランスをわけることができる。
二重回転のときは孫のバランスをチェックすることで回転後のバランスを
わけることができる。

削除時はパターンが2個増えて、平衡したという判断の仕方が変わるだけ。難しくないっしょ。

601:デフォルトの名無しさん
13/01/01 03:15:10.87
>>572
C++の場合、
struct Hoge {
int a;
};
自体が
typedef struct Hoge {
int a;
} Hoge;
相当になる。というかclassとstructがほとんど違いがない。(メンバ変数のデフォルトのアクセス制限の違いだけだったはず)

602:桃白白
13/01/01 03:33:55.52
>>601
なるほどー、桃白白もそう書くことにしようかな。

603:デフォルトの名無しさん
13/01/01 08:29:15.39
> rootにNULLを入れるのが抜けてるってことね。
年を越したらようやく正解が出てたか。 白白は反省文書くように。Stackも同様。

こんな簡単な事を恥ずかしくないコード出せとか必死で煽ってたバカは死にたくなっただろう。
もう死んだ? >>549とか >>549とか >>549とか >>549とか

まぐれで動くこともあるから、普通にレビューの経験積んでればこの程度の事は一瞥で
わかるようになってるもんだ。
3年以上PGやっててわからなかった奴は才能無いからホームレスに転職しろ。

604: ◆QZaw55cn4c
13/01/01 08:48:08.33
>>603
たしかにこの種のバグはデータ構造を扱うようになると一度は出会う、QZのような馬鹿だと何度も首をかしげることになりますね。
そこで、>>592 に一端を示してもいる「QZアロケータ」では malloc()したあとにランダム値を書き込んで返すという cmalloc() と真逆のことをして早期発見に努めています、本質的な対策にはなっていませんけど。
もっとも最近はめっきりと出会うことはなくなりました。

でも本当は c++ にさっさと移行してコンストラクタをきっちり書くことでしょうね。
>>603 ご指摘感謝アマチュアには身に余る配慮でした。
自然対数の底の展開もなんかやらかしてるのかな?

>>600
子ノードを左右とも持つノードの削除で思考/試行格闘中です。

605:デフォルトの名無しさん
13/01/01 11:20:31.42
>>603
結局おまえば出せずじまいじゃん
ちょろっと晒してドヤ顔してればいいものを
よほど自信がなかったんだろうなwwバーーカ

606: ◆QZaw55cn4c
13/01/01 11:46:20.30
>>605
may be >>477

607:デフォルトの名無しさん
13/01/01 12:46:41.66
>>605
こんな簡単なのでドヤ顔で指摘しろとか、本当にバカって惨め。
>>515でヒントのヒント、そのあとでヒント>>557を出してるのにバカには
わからなかったんだな。吐き気がするほどのバカ、破滅的に頭が悪い。

んじゃ、お年玉代わりにバカ向けにドヤ顔で解説してやる。感謝しろよ。バカ。

>>515の「おせっかいな通りすがり」とは彼ら(>>503-505)
-------------------------------------
>>503
> 動的二次元配列を0で初期化したいのですがfor
> でまわす以外に方法ってなにかあるのでしょうか??

>>504
> calloc

>>505
> >>503
> memset
-------------------------------------

続いて>>557の解説
mallocの後の領域初期化は要注意ポイント。
それをいきなりTree_addに渡している。Tree_addの引用が一行だけなら
Tree_addで初期化する可能性も否定できないが、2行引用すればバグであること
が明らかにになる。

> Tree tree = malloc(sizeof(struct Tree));
> Tree_add(tree, 3);
> Tree_add(tree, 1);

608:デフォルトの名無しさん
13/01/01 12:58:18.38
ふーん

609:デフォルトの名無しさん
13/01/01 14:03:48.62
>>607
解説っつーか、バカだの死ねだの発言が問題なわけですがそれは理解できてるんですか?

610:デフォルトの名無しさん
13/01/01 14:26:29.35
バカにバカといって何が悪い。

611:デフォルトの名無しさん
13/01/01 14:26:49.59
うん

612:デフォルトの名無しさん
13/01/01 14:32:48.84
なんでこう回りくどい人なんだろ

613:デフォルトの名無しさん
13/01/01 14:56:58.50
バカって言われたくなければ、自分の順位を正しくはかる事だ。

614:デフォルトの名無しさん
13/01/01 15:01:27.84
正月くらい美しく過ごしなさいな

615:デフォルトの名無しさん
13/01/01 15:16:38.98
>>613
普段どんな惨めな生活を送ってるんですか?
よほどでなければこうまでねじ曲がらないと思うんですけど?

616:デフォルトの名無しさん
13/01/01 15:48:41.85
バカと言われたのがそんなに悔しいなら、最初から出しゃばらなきゃ良かったんだよ。
お前のようなバカは、自分のバカさを認識して分をわきまえた方が生きやすいと思うぞ。

617:デフォルトの名無しさん
13/01/01 16:04:11.22
マァその小さすぎる梅干し程度の脳味噌じゃ自前で認識できないようだから
有難くも私がお前はバカだアホだマヌケだと懇切丁寧に教えてやっているんだがな
カネとってもいいくらいだ

618:デフォルトの名無しさん
13/01/01 16:17:58.12
こんな底辺スレで何をそんなに大きく出ちゃってるんだこのバカは
実生活でのストレスやらはこんなところくらいでしか発散させられないほどのバカなんだろうな

619:デフォルトの名無しさん
13/01/01 16:26:43.13
>>618
底辺PGなんてそんなものだ
察してやろうぜ

620:デフォルトの名無しさん
13/01/01 16:26:55.50
>>618
>>615

621:デフォルトの名無しさん
13/01/01 16:27:09.76
争いは、同じレベルの者同士でしか発生しない

622:デフォルトの名無しさん
13/01/01 16:47:42.38
まあこれで少しは懲りたでしょうな

623:デフォルトの名無しさん
13/01/01 16:50:05.51
「バカだの死ねだの発言が問題」とかいいながらバカを連発して回りくどいバカだな。

624:デフォルトの名無しさん
13/01/01 16:50:51.95
すいません。
ビットマップ画像に、アルファベット、ひらがな、カタカナ、数字、記号を入れて、
指定した文字を画面に描画する処理を作っているんですが、
if分の分岐が100を超えてしまうと、VCがコンパイルエラー表示してしまいます。
if分の分岐を使わずに、指定した文字の座標をセットするにはどうしたらいいでしょうか

625:デフォルトの名無しさん
13/01/01 16:52:01.88
>>623
バカ認定してる相手にバカって言われてそんなに悔しいの?www
だったら最初からかみついてくるんじゃねーよバーーーカww

626:デフォルトの名無しさん
13/01/01 16:53:21.45
その分岐の一部を貼ってみなよ。

627:デフォルトの名無しさん
13/01/01 16:53:52.77
>>624
後学のためその力作のソースを是非とも見てみたいから
ideoneとかにうpしてくれると
新年から討論の種が増えてわたくしはうれしいので
是非ともうpしてちょーだい

628:デフォルトの名無しさん
13/01/01 17:00:55.69
if分岐使わないって、関数ポインタの配列によるテーブル化のこと指してるのかな?

629:デフォルトの名無しさん
13/01/01 17:01:17.32
>>625
そんなに頭が悪くて生きているのつらくないか? バカだからそれすらないのか。
自然はうまくできてるな。

630:デフォルトの名無しさん
13/01/01 17:01:49.89
いや、普通にこういうのが並んでるだけだけど。

if (strcmp(c_jp, "あ") == 0){ pos->src.x = CHAR_SIZE*0; pos->src.y = CHAR_SIZE*0; }
else if(strcmp(c_jp, "い") == 0){ pos->src.x = CHAR_SIZE*1; pos->src.y = CHAR_SIZE*0; }

else if(strcmp(c_jp, ":") == 0){ pos->src.x = CHAR_SIZE*20; pos->src.y = CHAR_SIZE*2; }
else if(strcmp(c_jp, " ") == 0){ pos->src.x = CHAR_SIZE*21; pos->src.y = CHAR_SIZE*2; }
else if(strcmp(c_jp, "「") == 0){ pos->src.x = CHAR_SIZE*22; pos->src.y = CHAR_SIZE*2; }

if (c == 'a'){ pos->src.x = CHAR_SIZE*10; pos->src.y = 0; }
else if(c == 'b'){ pos->src.x = CHAR_SIZE*11; pos->src.y = 0; }
else if(c == 'c'){ pos->src.x = CHAR_SIZE*12; pos->src.y = 0; }
else if(c == 'd'){ pos->src.x = CHAR_SIZE*13; pos->src.y = 0; }

631:デフォルトの名無しさん
13/01/01 17:05:10.14
なんつーかこう、isascii()とか文字コード判定処理を使おうという
知能は働かないのかね。

632:デフォルトの名無しさん
13/01/01 17:05:10.48
#define NCHARTYPE 128
typedef void (*funcp)();
void str_a();
int main(){
funcp str_tbl[NCHARTYPE];
str_tbl['a']=str_a();
}
こんな感じのコードを書きたいけど、書けない学部生なら昔見た

633:デフォルトの名無しさん
13/01/01 17:05:29.22
>>629
>>629

634:デフォルトの名無しさん
13/01/01 17:09:28.56
data = array[あ];

ってやるとdataに"あ"のX座標とY座標が入るみたいなイメージ。
STLのマップとかでできないですかね

635:デフォルトの名無しさん
13/01/01 17:10:22.19
stlのmapでやれよ
cでやるならhash関数ぐらい自分で書け

636:デフォルトの名無しさん
13/01/01 17:12:14.00
stlのマップのキー値ってchar* の文字列でもいいんでしたっけ

637:デフォルトの名無しさん
13/01/01 17:12:54.45
C言語にSTLは無いのでできません

638:デフォルトの名無しさん
13/01/01 17:15:50.85
>>637
cstlってライブラリならあります。glibとか基本的なデータ構造は用意されてます
>>634
それって、構造体ポインタの配列(hash)じゃないの?

639:デフォルトの名無しさん
13/01/01 17:16:27.63
>>630
普通は
"あ" -> 0, "い" -> 1
'a' -> 10, 'b' -> 11
を計算で求める。でも、計算式を考えるのが嫌だったら。
↓こういう関数作れば解決。

int z(const char *c_jp)
{
if(strcmp(c_jp, "あ") == 0){ return 0;}
if(strcmp(c_jp, "い") == 0){ return 1;}
}

int e(char c)
{
if(c == 'a'){ return 10;}
if(c == 'b'){ return 11;}
}

640:デフォルトの名無しさん
13/01/01 17:19:55.54
計算結果求めるのに結局if文がいっぱい並ぶじゃないすか

641:デフォルトの名無しさん
13/01/01 17:21:15.01
elseでつないでいるから複雑すぎると言ってコンパイラが降参する。
if () return v;
これの連続だけなら楽勝で通る。

642:デフォルトの名無しさん
13/01/01 17:23:47.63
もっとかっこいいやつがいいです

643:デフォルトの名無しさん
13/01/01 17:24:23.86
{ pos->src.x = CHAR_SIZE*11; pos->src.y = 0;}
この部分、関数かマクロで纏めろよ

644:デフォルトの名無しさん
13/01/01 17:27:46.87
>>642
if () return v;
をうまく配置して格好いい絵でも書けよ。

645:デフォルトの名無しさん
13/01/01 17:30:49.14
>>630
21世紀型プログラミングの真髄を垣間見た
これこそが今の時代に求められるC言語の使い方だ
わたくしはこれ以上この美しいソースを書きかえることなんてできない

646:デフォルトの名無しさん
13/01/01 17:31:05.49
>>633
おまえさー、スゲー簡単な答えかもしれないって事を考えずにコードコードと煽ってたのか?
スゲー簡単な答えが出てきたら(実際出てきちゃったんだが)どうするつもりだったんだ?

バカの思考回路は良くわからないな。

647:デフォルトの名無しさん
13/01/01 17:34:58.94
>>646
そうじゃなくて、煽ることばかりのお前の態度を指摘していたんだよ(最初から
それが読み取れないのはバカだから?日本人じゃないから?

648:デフォルトの名無しさん
13/01/01 17:35:11.24
int hash(const char *cp){
if () return z();
if () return e();
return -1;
}

#define INSERT(a,b,c)
Foo hash_tbl[]={
INSERT(hash("あ")),
INSERT(hash("い")),
...
}
アイディアだけ書く

649:デフォルトの名無しさん
13/01/01 17:36:33.78
C++スレへ行ってSTLの使い方聞くだけでいい

650:デフォルトの名無しさん
13/01/01 17:37:56.14
>>649
このぐらいならSTLなんてイラナイだろ

651:デフォルトの名無しさん
13/01/01 17:39:47.57
>>647
それに対抗するために煽り返していたのか。バカの後付けの言い訳は見苦しすぎる。
足りない頭で必死に考えて、そんな回答ないと確信して煽ってたんだろうな。
バカすぎwww

652:デフォルトの名無しさん
13/01/01 17:40:23.36
この半角のおっさんここにもいるのかwwww
うかうかしてらんねーな

653:デフォルトの名無しさん
13/01/01 17:43:11.44
>>650
STL使えるVC++でSTLを避ける意味はない。

654:デフォルトの名無しさん
13/01/01 17:43:27.03
>>650
STLはこのくらいのものばかりだよ

655:デフォルトの名無しさん
13/01/01 17:43:46.71
>>651
>そんな回答ないと確信して

ここら辺がバカすぎ
全く理解できてない
あるかないかは関係ないだろwww

656:デフォルトの名無しさん
13/01/01 17:45:12.94
C++スレ池

657:デフォルトの名無しさん
13/01/01 17:45:24.81
>>653
ひょっとすると、visual studioでgnuへ貢献しようとしてるかもしれないだろ

658:デフォルトの名無しさん
13/01/01 17:53:35.33
gnuへ貢献ってstl使っちゃいかんの?

659:デフォルトの名無しさん
13/01/01 17:57:52.64
>>655
つまり、気に入らない態度に対して同じ態度で煽り返していたと。バカ丸出しwww
バカは後付けで言い訳考えない方がいいぞ。

660:デフォルトの名無しさん
13/01/01 17:59:15.68
基本的にcで書ける人の方が多いからcで書けってRMSが唱えてたよ
いろんな分野の混じったとき、c++が読めない人も居るからとかなんとか
論文だか草稿だかならみた記憶ならあるけれど

661:デフォルトの名無しさん
13/01/01 18:02:25.55
とかいいつつ、 gcc は c++ で書き直されたんだよな。

662:デフォルトの名無しさん
13/01/01 18:06:35.59
>>661
スラド民の誰かが、中の人が中二病起こしたって書いてたな
技術的な詳細なんてシラネ。そんな人間がこの板を通り掛かるわけもないだろうし

663:デフォルトの名無しさん
13/01/01 18:07:29.44
>>659
同じことをしてやればさすがに理解できるだろうからだよwww
分かったかバカwwwww
しかし、バカにバカって言って何が面白いのか

664:デフォルトの名無しさん
13/01/01 18:10:21.92
if ()
else if()
else if()
...
が、どのくらいいけるか試してみた。VC++ 500行OK, 700行はだめ。
clang, gccは10000行でもOK
VC++ 弱すぎ。

665:デフォルトの名無しさん
13/01/01 18:13:09.74
>>663
残念ながらバカにバカといわれても全然平気。
それより気に入らない態度を自分が真似できる神経を尊敬する。バカってある意味最強だな。

666:デフォルトの名無しさん
13/01/01 18:15:42.51
>>665
これが部下なら鉄拳制裁してやれるのにな

667:デフォルトの名無しさん
13/01/01 18:18:51.68
やられたら手段を選ばずやり返すって、日本人のメンタリティじゃないよね。

668:デフォルトの名無しさん
13/01/01 18:22:37.78
>>665
バカと言われるのは平気と言いながらもレスを絶やすのはできないほど高いプライドをお持ちのようでwwww

669:デフォルトの名無しさん
13/01/01 18:23:29.49
バカの正体は多分↓これだな。これをバカにされたのを粘着してたのか。読み返してみてもバカすぎる。www

From: [498] デフォルトの名無しさん <sage>
Date: 2012/12/31(月) 10:26:26.81

>>491
typedefしないと、変数を定義する際にイチイチstructって書かないとダメだろ

>>494
Tree make_tree(){ return (Tree)malloc(sizeof(struct Tree)); }
free_tree(Tree *tree){ free(tree); }

670:デフォルトの名無しさん
13/01/01 18:23:42.01
息を吐くようにバカバカ連呼できるのは半島人だからか


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch