- 1 名前:デフォルトの名無しさん [2015/05/27(水) 06:15:55.14 ID:gRxCv8ae.net]
- C言語の入門者向け解説スレッドです。
★前スレ C言語なら俺に聞け(入門編)Part 127 peace.2ch.net/test/read.cgi/tech/1424244688/ ★過去スレ ttp://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++の宿題片付けます 168代目 peace.2ch.net/test/read.cgi/tech/1408962564/ ★C++言語については避けてください。C++対応明記スレへどうぞ。 ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。 # サイズが大きい場合はアップローダ等を利用してください。 ttp://codepad.org/ ttp://ideone.com/ ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 【重要】 当たり前の事ですが、2chではコピペ荒らしは禁止されています
- 2 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 06:45:54.38 ID:SouEKxUw.net]
- 乙だが128では?
- 3 名前:デフォルトの名無しさん [2015/05/27(水) 06:47:14.31 ID:BqvzOlIW.net]
- >>2
前回が間
- 4 名前:違えてる
修正して129 [] - [ここ壊れてます]
- 5 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 06:51:28.30 ID:SouEKxUw.net]
- なるほど了解
改めて乙
- 6 名前:デフォルトの名無しさん [2015/05/27(水) 16:27:21.93 ID:lomThlZd.net]
- c言語で && とか || は左から評価されることが保証されている?
- 7 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 16:42:47.49 ID:5zOFtYYl.net]
- A==B ? a+b : 0;
今更知ったんだけど、これダメなんだね A==B ? (a+b) : 0; こうしないとアカンらしい。括弧が必要なポイントが分からんすぎていつも嵌る
- 8 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 16:52:32.64 ID:nuGrXhR8.net]
- >>5
左側の評価だけで即解決する場合 (or結合での正 / and結合での否) に右側が評価されないようになってる = ショートサーキット
- 9 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 17:24:31.23 ID:CXVzjYKy.net]
- 三項演算子は使わない
- 10 名前:デフォルトの名無しさん [2015/05/27(水) 18:06:06.51 ID:lomThlZd.net]
- >>7
おkありがとう
- 11 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 18:54:58.47 ID:CN4no++3.net]
- >>6
(A ==B) ? a + b : 0; と書くようにしているが、それでもハマリ防止にはならないらしい‥ peace.2ch.net/test/read.cgi/tech/1313183984/766
- 12 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 19:02:43.43 ID:g535aIO5.net]
- >>6
ダメとかアカンとかじゃなくて、自分はコンパイラと違う解釈してましたってことだろ まあスタイルとしては、迷いそうなところは括弧付けるのがいい。 (A == B)?(a + b):0
- 13 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 19:21:02.83 ID:5zOFtYYl.net]
- せやな。括弧付けるんは無料だしどんどんつけてくぜ
- 14 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 19:29:23.14 ID:bmPyy927.net]
- >>6
誰がそんなデタラメ教えたんだ? > A==B ? a+b : 0; > A==B ? (a+b) : 0; このふたつの演算結果は完全に同じ >>10-11 知ったかぶりする前に優先順位表でもみた方が良いぞ。
- 15 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 19:32:24.70 ID:5zOFtYYl.net]
- >>13
教わった訳じゃなくて、思い通りに動かなかったのが括弧付けただけで動いたんだもん・・・
- 16 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 20:00:44.25 ID:bmPyy927.net]
- >>14
じゃ、それは関係無い マグレで動いてるように見えてるだけ
- 17 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 20:09:19.47 ID:c6bUiV8v.net]
- >>10 の先のは ? の左側の順位の問題
C = D + 「三項演算子の評価値」 のつもりで C = D + (A == B) ? a : b; とかいたが C = 「D + (A==B) を判定し a または b を渡す三項演算子」 となった
- 18 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 21:56:57.44 ID:toEie+PK.net]
- >>13
>このふたつの演算結果は完全に同じ ところがどっこい peace.2ch.net/test/read.cgi/tech/1313183984/766 >× *x_sol = x + (alpha > 0) ? alpha : -alpha; こう書くと x + (alpha > 0) が優先されるのであった‥ >知ったかぶりする前に優先順位表でもみた方が良いぞ。 そのようだね、お互いに
- 19 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 22:53:38.02 ID:bmPyy927.net]
- >>17
式を変形させて同じじゃ無いとかバカいってんな。死ねアホウ。 > A==B ? a+b : 0; > A==B ? (a+b) : 0; このふたつの演算結果は完全に同じ
- 20 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 22:56:15.88 ID:bmPyy927.net]
- 本当にQzってダメな奴だな
- 21 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 23:02:45.84 ID:5zOFtYYl.net]
- A==B ? a+b : 0;というのは簡単に書いたんだが、ちゃんと実際のやつ書いたほうがええな・・・
phai = vco_seek(略,略,略,略,略,略,略, vco_tone[s] * ((s == mod_lavel - 1) || (3 == mod_lavel) ? mod_G*modADSR(f, 0) + 1.0 : 1.0)); これを phai = vco_seek(略,略,略,略,略,略,略, vco_tone[s] * ((s == mod_lavel - 1) || (3 == mod_lavel) ? (mod_G*modADSR(f, 0) + 1.0) : 1.0)); に変えたら上手くいったんだわ。同じ事だと思うが
- 22 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 23:04:58.49 ID:bhmZkUHl.net]
- 珍しいコンパイラーだね
- 23 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 23:11:06.09 ID:bmPyy927.net]
- >>20
アセンブリ出力して比べてみろよ 違ってるならコンパイラが壊れている
- 24 名前:デフォルトの名無しさん mailto:sage [2015/05/27(水) 23:31:31.58 ID:5zOFtYYl.net]
- >>22
アセンブラ比較してみたら37箇所違うところがあるみたい xxxxxxxxxxxx.net/_/135/20150527232953-0.jpg まぁ訛りのつよいコンパイラって事で諦める事にしとくわw
- 25 名前:デフォルトの名無しさん [2015/05/27(水) 23:33:10.69 ID:AoLMgYi8.net]
- :より先に+が演算されるから変わらないだろ
お前のコードが間違えてるかコンパイラが変
- 26 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 02:48:07.72 ID:rkwpKfBz.net]
- >>23
その画像の部分はラベル違うだけじゃ?
- 27 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 08:25:26.19 ID:7RWTzWFs.net]
- このように無駄な喧嘩の原因になるので括弧をつける癖をつけよう。
- 28 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 08:37:24.47 ID:qBUpvu6j.net]
- 無駄じゃない
1 ID:5zOFtYYlのプログラムが依然としてバクが修正できていない事実が判明した 2 Qzが救いようのないバカである事が再々再度確認できた
- 29 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 10:10:34.56 ID:TeBgubTT.net]
- 文字列の終端を表す「\0」は10進数の0と共通のアスキーコードらしいですが、
これでは文字列の途中に数字の0が入っていたらそこで文字列が終わって しまうんですが?
- 30 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 10:21:47.34 ID:qBUpvu6j.net]
- 数字の0のアスキーコードは0x30
なので問題ない
- 31 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 10:34:23.87 ID:TeBgubTT.net]
- ありがとうございます!
- 32 名前:デフォルトの名無しさん [2015/05/28(木) 12:36:56.52 ID:uqfTz9n2.net]
- ビット演算や16進数など速く使えるようになりません
仕事がハードよりなので恐らく使う事になると思うのですが 良い練習法などあったら教えてください。
- 33 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 12:37:58.78 ID:BA36VF96.net]
- >>18 >>27
おう、またお前か、MASM の勉強は進んでいるかね? 人に言われないと自分が馬鹿であることを時々忘れるから、まあ、有難いことだ さて、>>6 は三項演算子(条件演算子)の優先順位と括弧のつけ方について話題にしている まあ >>6 の内容自体には疑問はあるが、三項演算子の優先順位の低さは話題になってもよい そこで、議論を有用な方向に導くためにも俺のミステイクを公開してみた しかし、お前は汗とか小さいことにこだわるんだね 視野が狭いとあちこちにぶつかって痛いだろう?大人になり給え
- 34 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 12:39:35.13 ID:JHgdzIBl.net]
- 仕事で使うなら仕事で勝手に身につくだろ
実践が早いってこと
- 35 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/05/28(木) 12:46:46.61 ID:BPOchcgZ.net]
- 二進数四桁が十六進数一桁に相当することを覚えれば進数の換算が早くできるようになる。
十進数で十倍すると右にゼロが1つ増える。 一般にX進数でX倍すると右にゼロが1つ増える。 左シフト演算はX倍の繰り返しだと覚えればいい。 右シフトはその逆。 AND演算はビットごとの論理積だから、二進数に置き換えて考える。 OR演算はビットごとの論理和だ。 最悪の場合でも、ウィンドウズ付属の電卓を使えばなんとかなるかと。
- 36 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/05/28(木) 13:06:49.57 ID:BPOchcgZ.net]
- 例えば、1001101という二進数があったら、位の低い方から四桁区切りにすると
100 1101 となる。100は十六進数で4であり、1101は十六進数でDだから、 二進数の100 1101は、十六進数の4Dである。
- 37 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/05/28(木) 13:11:05.27 ID:BPOchcgZ.net]
- C言語やる前に基本情報くらい取っとけ
- 38 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 13:12:30.95 ID:qBUpvu6j.net]
- >>32
やあ、ひさしぶりだな。チンカス。 まだ底辺で蠢いてるのか? 末尾再帰は理解できたか?
- 39 名前:デフォルトの名無しさん [2015/05/28(木) 13:17:07.50 ID:uqfTz9n2.net]
- >>33
仕事で勝手に身につける、前段階の不安を和らげる緩衝剤みたいな感じです。 >>34-35 丁寧にありがとうございます! そっくりそのままノートにとって会社もってきますw >>35の考え方凄くわかりやすいですね。最終手段「電卓」覚えときます。
- 40 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 13:47:31.11 ID:7y7wQ+Hc.net]
- >>38
10進数の四則演算はどうやって覚えてきたか思い出すといい。 ・まずは、16進2進の相互変換を覚える。(考えるのではない) こうするとパッと見でビットパターンが浮かんで便利。 ・16進一桁の加減算くらいは覚える。 こういうことをすると、n進数が身近なものに感じられるようになるんで、 変な苦手意識がなくなるからおすすめ。
- 41 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/05/28(木) 13:50:16.12 ID:BPOchcgZ.net]
- そもそもshiftという英単語は、ずらすという意味を含んでいるからな
- 42 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 14:19:20.15 ID:BPOchcgZ.net]
- ※未承認広告※
さあ、ユーキ●ンで基本情報を取得しよう。
- 43 名前:デフォルトの名無しさん [2015/05/28(木) 17:32:52.86 ID:pwrXSWWR.net]
- 夕貴たんですか。
- 44 名前:デフォルトの名無しさん [2015/05/28(木) 17:48:55.24 ID:+ywrUonY.net]
- 基本情報どころか、いまやITパスポートレベルの知識。
ITパスポートに基本情報の問題がどんどん入ってきてる。
- 45 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 17:52:41.32 ID:9BOAlIFb.net]
- こういうのは大丈夫なのか
#define LED1 (0x01) #define LED2 (0x02) PORTD |= LED1; PORTD &= ~LED1; PORTD |= (LED1 | LED2); PORTD &= ~LED2;
- 46 名前:デフォルトの名無しさん [2015/05/28(木) 18:47:19.12 ID:qBUpvu6j.net]
- 末尾再帰を知らずに墓穴を掘ったチンカスくん(>>32)の爆笑発言
tech/1352812333/の876がチンカスくん > From: [874] デフォルトの名無しさん <> > Date: 2013/01/29(火) 12:37:44.50 > > バカがうるさいので書き直してやるよ。www > void free_l(struct l * restrict p) { > struct l *next = p->next; > free(p); > if (next) > free_l(next); > } > > バカのいいがかりなんて所詮この程度の事。 バカには意味わからないだろうけどな。www > From: [876] デフォルトの名無しさん <sage> > Date: 2013/01/29(火) 12:58:33.48 > > ここでwwwさんに問題です > 天才には簡単な問題ですので必ず逃げないで答えてください > > スタックサイズが8MBのとき、このfree_l関数で解放可能な連結リストは > 最大何個連結可能でしょうか? > > アーキテクチャは好きに選んでいいですよ
- 47 名前:デフォルトの名無しさん [2015/05/28(木) 18:49:56.50 ID:qBUpvu6j.net]
- 「アセンブリ」に過剰反応する理由が↓これ
> 884 : デフォルトの名無しさん[sage] 投稿日:2013/01/29(火) 14:41:33.76 > 別にちゃんと>>867を答えてもらってもいいですよ > 答えられるならばの話ですけど > 885 : デフォルトの名無しさん[] 投稿日:2013/01/29(火) 14:42:41.02 > >>884 > 制限なし。www > これでいいのか。 www > 890 : デフォルトの名無しさん[] 投稿日:2013/01/29(火) 15:24:04.07 > バカには読めないと思うけど、>>874のアセンブリリストね。 wwww > pastebin.com/4pBPEWBG > > 読めなくて良かったな。バカ。 wwwww > 読めてたら憤死するところだぞ。 wwww
- 48 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 21:17:36.02 ID:uqfTz9n2.net]
- C言語勉強中とはいえビット演算のみ質問はかなりスレチに近かった・・・反省。
>>39 加減算覚えるの凄くよさそうですねトレーニングに取り入れたいと思います。 本当に日常で触れてなかったものの苦手意識排除は大変、がんばります! >>41 絶賛勉強中ですw
- 49 名前:デフォルトの名無しさん mailto:冥利 [2015/05/28(木) 23:09:51.22 ID:+atrdthn.net]
- >>45 >>46
よっぽどツボにはまったのねw
- 50 名前:デフォルトの名無しさん mailto:sage [2015/05/28(木) 23:43:18.09 ID:qBUpvu6j.net]
- >>48
ls -l ./progと肩を並べる赤っ恥
- 51 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 07:13:43.33 ID:UV9YC1hI.net]
- あああああああ参照カウントあああああああ
- 52 名前:50 [2015/05/29(金) 08:16:00.19 ID:6ABPwQuC.net]
- 参照カウントの実装関連で質問です
実装中のリスト処理用関数popについて struct list { void *car; void *cdr; }; struct list *pop(void **place) { void *p = list_car(*place); update(place, list_cdr(*place)); /* update(**void, *void) はカウントを調整して第一引数の位置に第二引数を代入する */ return p; } この関数でupdate(place, list_cdr(*place));のときにpのオブジェクトが回収されてしまって もどったときにはごみになってしまします。 うまい方法はないでしょうか? ps移動しているのでIDかわってしまうかもです
- 53 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 12:14:24.83 ID:6sq7SX0R.net]
- 所有権の移譲なのか、単にショートカットとしての変数への代入なのか
区別できていないからうまくいかないんじゃね? 知らんけど
- 54 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 12:40:50.62 ID:GiRGpazT.net]
- どのへんが参照カウントなのかわからんけど、
ゴミになるって言うんだからmallocしてないんじゃね?
- 55 名前:51 mailto:sage [2015/05/29(金) 13:36:21.56 ID:UV9YC1hI.net]
- >>52
所有権の移譲ってなんですか?
- 56 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 13:53:52.96 ID:6sq7SX0R.net]
- void *a = malloc();
case 1) void *p = a; free(a); .... *p 等を使ったコード case 2) void *p = a; a = NULL; free(a); .... *p 等を使ったコード の違いみたいな論理思考 後者の case 2 は a のもちものだったものを p へ移してる
- 57 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 14:01:20.06 ID:8st5hivm.net]
- update()のコードも張らずに
エスパー募集中か?
- 58 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 14:03:23.10 ID:6sq7SX0R.net]
- >>56 list_car() list_cdr() も欲しいねw
- 59 名前:51 [2015/05/29(金) 14:07:43.16 ID:UV9YC1hI.net]
- もうしわけない
void *list_car(void *obj) { enum gc_type type = gc_type(obj); if (type == GC_TYPE_NULL) { return NULL; } else if (type == GC_TYPE_LIST) { return ((struct list *)list)->car; } else { fprintf(stderr, "ERROR: TYPE\n"); abort(); } } void *list_cdr(void *obj) { enum gc_type type = gc_type(obj); if (type == GC_TYPE_NULL) { return NULL; } else if (type == GC_TYPE_LIST) { return ((struct list *)list)->cdr; } else { fprintf(stderr, "ERROR: TYPE\n"); abort(); } }
- 60 名前:51 [2015/05/29(金) 14:08:17.84 ID:UV9YC1hI.net]
- void *gc_update(void **place, void *obj)
{ if (place == NULL) { abort(); } gc_incref(obj); gc_decref(*place); return *place = obj; }
- 61 名前:51 [2015/05/29(金) 14:16:01.63 ID:UV9YC1hI.net]
- >>55
意味は分ったかもしれない
- 62 名前:51 mailto:sage [2015/05/29(金) 15:37:20.35 ID:UV9YC1hI.net]
- decrefのカウントが0になってもフリーリストに行かない関数があればカウントが0のオブジェクトを返せそう?
return なにか(void *);
- 63 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 15:39:53.38 ID:cfB2m1BQ.net]
- 台形則を使って2重積分の計算をするプログラムを作ってるんだが、分かる人教えてクレメンス
関数はexp(x + y)で範囲はxもyも0から1ですね…
- 64 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 16:54:11.41 ID:8st5hivm.net]
- >>61
gc_decref(*place); で car の内容のリファレンスカウンタが減算されるようになっているのか 。 p を pop() のリターン値として返すなら、pにコピーした時点で「移譲」だろうから、 p = list_car() の後で car に NULL を入れてしまうのが良いんじゃないか? ところで… pop() の戻りは list なのか。car の内容は object のような気がするが void* じゃないのか。
- 65 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 17:48:56.38 ID:hTQPDRSd.net]
- >>62
https://www.wolframalpha.com/input/?i=integrate+exp%28x%2By%29+dx+dy%2C+x%3D0..1%2C+y%3D0..1 ideone.com/tjq3jd なんか答えが違うんだよなあ?
- 66 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 17:54:35.44 ID:hTQPDRSd.net]
- www.wolframalpha.com/input/?i=Integrate%5BIntegrate%5Bexp%28x+%2B+y%29%2C+%7Bx%2C+0%2C+1%7D%5D%2C+%7By%2C+0%2C+1%7D%5D
こう書いても同じか
- 67 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 18:07:32.85 ID:6sq7SX0R.net]
- 参照カウンタ式のGCとリスト構造… 循環参照とか大丈夫なのかね
ttp://d.hatena.ne.jp/moriyoshi/20080528/1211955227
- 68 名前:51 mailto:sage [2015/05/29(金) 18:09:45.20 ID:UV9YC1hI.net]
- >>63
void *移譲(void **場所) { void *オブジェクト = NULL; if (場所 == NULL){ えらー } オブジェクト = *場所; *場所 = NULL; if (オブジェクト == NULL){return NULL;} オブジェクト->カウンタ -= 1; /* 0でも何もしない */ return オブジェクト; } これどーですか?
- 69 名前:51 mailto:sage [2015/05/29(金) 18:11:21.80 ID:UV9YC1hI.net]
- >>66
プログラマ(自分)が意識的に回避
- 70 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 18:11:23.33 ID:cfB2m1BQ.net]
- >>64
>>65 おおサンキュ 一応手元ではxの積分とyの積分を別々に考える(y方向積分時にx積分の関数を呼び出す)方法で解決はしたが… まぁでも方向性は同じなはず^^
- 71 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 18:16:19.75 ID:8st5hivm.net]
- >>66
他にGCモジュールがあると考えたいところ。perl のように割り切るとか。 まあ、循環参照はだめよって制限付きで俺もよくつかうがな。
- 72 名前:51 mailto:sage [2015/05/29(金) 18:30:42.84 ID:UV9YC1hI.net]
- >>70
スルーしないで下さいよ
- 73 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 18:32:16.72 ID:8st5hivm.net]
- >>66
> オブジェクト->カウンタ -= 1; /* 0でも何もしない */ はいらないような。 カウンタ0の物がふらふらしているのはどうかと思うんだが。 (Multi Threadに対応するときにいろいろいやなことになったりしそう)
- 74 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 18:34:53.91 ID:8st5hivm.net]
- >>71
単にロードしてなかっただけ。 専ブラ使えなくなったんで面倒なんだよ。
- 75 名前:51 mailto:sage [2015/05/29(金) 18:46:16.27 ID:UV9YC1hI.net]
- >>72
update(新しい場所,移譲(古い場所)); みたいな感じですぐにupdateの第二引数として利用することを想定しています これなら問題ないと思ったのですが >>73 これは失礼しました
- 76 名前:52 mailto:sage [2015/05/29(金) 18:53:56.18 ID:7AW8/kfN.net]
- 移譲という言葉で混乱させたようで済まない
>>74 move(新しい場所, 古い場所) を用意したら? 用途は 古い場所にあるobj を 新しい場所に移したうえで 「古い場所」そのものも GCで整理
- 77 名前:51 mailto:sage [2015/05/29(金) 19:33:06.21 ID:UV9YC1hI.net]
- >>75
もっともなのですがそれだとpopを実装できないのです
- 78 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 20:01:20.59 ID:+1oUtA3O.net]
- 1000000以下のスミス数を求めるプログラム…実行時間47秒ってウンチ
- 79 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 21:37:50.92 ID:O1LEtnxT.net]
- >>64>>65
x * yじゃなくてx + yだね それとy2の計算が間違ってたのでうpしといた シンプソン法でも同じ結果が出たから間違いないはず ideone.com/EQJ4AP
- 80 名前:デフォルトの名無しさん mailto:sage [2015/05/30(土) 13:57:58.63 ID:nOufQzbT.net]
- >>77
24秒 セレロン
- 81 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 05:14:20.17 ID:yKjUvmXa.net]
- 文字列を使う場合はchar[]型とstring型のどっちを使っていくのが賢いと思いますか
- 82 名前:デフォルトの名無しさん [2015/05/31(日) 08:09:17.66 ID:lLGn4l2b.net]
- C言語にstring型なんてないだろ
あと、char[]型ってなんだよ
- 83 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 15:00:25.43 ID:9ldLUKuR.net]
- C++11だとinline関数のアドレスは取得出来るけど、C99でアドレスを取得しようとしたら
エラーになりました これって普通なんですか?gcc4.9.2です
- 84 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 16:11:29.11 ID:456RRL4M.net]
- 配列の質問です
const int N =100; double* K = new double[2 * N]; for (int n = 0; n < N; n++){ K[2 * n] = -2 K[2 * n + 1] = 1 } Kは2行N列の配列?下のfor文でどのように数値を格納しているのかわかりません、教えてください
- 85 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 16:15:59.59 ID:J91fllt7.net]
- 添え字が
偶数 (0,2,4,8, ...) の時に -2 奇数 (1,3,5,7, ...) の時に 1
- 86 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 16:25:35.08 ID:456RRL4M.net]
- >>84
ありがとうございます Kの中身は具体的にどうなるんですか?最初の法だけでも教えてください…
- 87 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 16:26:44.42 ID:J91fllt7.net]
- K[0] =-2
K[1] = 1 K[2] = -2 K[3] = 1 : :
- 88 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 16:30:32.88 ID:456RRL4M.net]
- >>86
じゃあKは2*N行1列の配列ってことですね、勘違いしてました ありがとうございました
- 89 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 17:23:52.40 ID:JzM7CxZP.net]
- 行とか列とかない
メモリが確保されて そこにデータが書き込まれただけ
- 90 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 20:55:30.09 ID:60WsLIt6.net]
- int main(void){
.... }じゃなくて int (*main)(void){ .... } といった書式で関数ポインタ定数を定義することが できますか?
- 91 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 21:49:19.63 ID:rd0Fn6X3.net]
- main 関数でソレをやりたいのか
関数のポインタを受ける変数を用意してそれに関数のポインターを代入して呼び出すことをしたいのか int (*funcptr)(char*) = atoi; funcptr("1"); /* atoi("1"); と同じ */
- 92 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:39:06.44 ID:CikCK20O.net]
- >>89
そもそも何がしたい?
- 93 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:39:37.29 ID:60WsLIt6.net]
- typedef int (*hoge)(void);
int Hoge(void){ ..... } hoge h=&Hoge; を一行で int (*h)(void){ .... } とするととコンパイルエラー になるものなのでしょうか?
- 94 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:40:50.53 ID:+exp5V/e.net]
- >>90
>といった書式で関数ポインタ定数を定義することが >できますか? という問いに対して適切に答えなよ。
- 95 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:44:07.94 ID:CikCK20O.net]
- >>92
そんなことはコンパイラ聞け
- 96 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:44:43.22 ID:60WsLIt6.net]
- エラーにならないコンパイラはないのでしょうか?
- 97 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:47:11.26 ID:CikCK20O.net]
- >>95
無い事を証明する事は不可能
- 98 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:48:09.70 ID:rd0Fn6X3.net]
- >>93
質問の意図が見えなかった が >>92 で見えた >>95 文法的にそういうもんだからあきらメロン
- 99 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:48:28.00 ID:60WsLIt6.net]
- int (*h)(void){
.... } じゃなくて int (*h)(void){ .... }; としなければなりませんね 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
- 100 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 22:55:27.29 ID:vGbHt5ax.net]
- >>92
仮にそう定義できたとして、使う時は int n = h(); なので、 int n = hoge(); と変わらんがな。
|

|