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


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

スレを勃てるまでもないC/C++の質問はここで 20



1 名前:デフォルトの名無しさん [2011/09/15(木) 00:17:43.25 ]
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
01 pc11.2ch.net/test/read.cgi/tech/1167476845/
02 pc11.2ch.net/test/read.cgi/tech/1178503366/
03 pc11.2ch.net/test/read.cgi/tech/1187521676/
04
pc11.2ch.net/test/read.cgi/tech/1221633708/
05 pc11.2ch.net/test/read.cgi/tech/1230516307/
06 pc11.2ch.net/test/read.cgi/tech/1231564903/
07 pc11.2ch.net/test/read.cgi/tech/1232983248/
08 pc12.2ch.net/test/read.cgi/tech/1235921779/
09 pc12.2ch.net/test/read.cgi/tech/1240022781/
10 pc12.2ch.net/test/read.cgi/tech/1242300936/
11 pc12.2ch.net/test/read.cgi/tech/1245059383/
12 pc12.2ch.net/test/read.cgi/tech/1248010352/
13 pc12.2ch.net/test/read.cgi/tech/1260842197/
14 pc12.2ch.net/test/read.cgi/tech/1269273471/
15 pc12.2ch.net/test/read.cgi/tech/1273368706/
16 hibari.2ch.net/test/read.cgi/tech/1279285647/
17 hibari.2ch.net/test/read.cgi/tech/1285115590/
18 hibari.2ch.net/test/read.cgi/tech/1291571263/
19
hibari.2ch.net/test/read.cgi/tech/1308106024/

385 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 09:48:15.75 ]
ハンドルを整数にする利点って?
スマポに入れにくいし、不透明ポインタでいいじゃん

386 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 09:58:17.86 ]
>>385
例えばWindowsのウィンドウハンドル(hWnd)は(事実上)整数。

387 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 10:21:27.99 ]
一々専用の不完全書くのが面倒

388 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 10:35:50.49 ]
>>386
windowsの話はいいから利点を教えて

389 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 10:39:08.53 ]
無効になったオブジェクトを指すポインタ(メモリ領域)は容易に再利用されるから。
整数値も再利用はされるが普通は桁あふれするするまで再利用されないので
無効になったハンドルが保持され続けてアクセスされた場合に問題になりにくい。

390 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 11:05:49.62 ]
>>385
ハンドルは異なるアドレス空間でも共有できる。



391 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 11:27:42.30 ]
なんだ、ハンドルが実数じゃダメなの?って質問かと思ったわ

392 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 14:34:18.25 ]
実数だと == で比較出来なくなるだろ馬鹿

393 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 15:08:00.68 ]
プログラミング入門としてよくC言語が挙げられますが、今の時代にC言語ってどういう場面に使われているんでしょうか?
時代遅れという意見もよく聞きますので・・・



394 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 15:09:57.93 ]
パチンコ

395 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 15:10:43.15 ]
家電製品 

スペースシャトル 

電気自動車 


396 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 15:14:12.79 ]
>>394-395
重要な部分で使われているのですね
学習意欲がアップしました。ありがとうございます

397 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 00:25:47.35 ]
C言語知ってると他の言語に移行しやすいよね
そして、他の言語はC言語よりもずっと多機能で扱いやすい代わりに、
実行速度が異様に遅いことに愕然としてみたり・3・;

398 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 01:52:19.88 ]
そういえば。Cの習得に時間がかかりすぎて、
C++を含む他言語のライブラリ習得が難しくなってしまった

アタマが硬くなってしまったらしい
そういや、昔のコードを見返すと、汚かったが、賢かったような気がする

プログラミングはアマでやってるので、仕事に影響はないようなもんだが、
硬くなってしまったアタマは仕事に影響があり、プログラミングを通して、
アタマをやわらかくしたい。

いい方法はないか。ネタ、マジレス両方で。

399 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 05:11:08.91 ]
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|

400 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 18:22:56.19 ]
>>398
スポーツすると頭に酸素がよく回って活発になるよ


401 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 23:03:50.86 ]
よこからだけど
いいこときいた
ありがとう

402 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 00:14:04.66 ]
>>398
・楽しめる部分を見つける。
見つからなければ、状況を楽しんでみる。
・苦痛を感じる手前で一旦休憩して再度トライする。

403 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 00:54:10.94 ]
頭が硬いとか柔らかいとか都市伝説だから心配すんなw
新しい言語の学習がうまくいかないのは、大抵、
1.それが必要じゃないから真剣味が足りない
2.単に経年等で知能が衰えた(ため相対的にそんな気分がする)
のどちらかで、大抵は1だから、仕事にすればすぐ出来るようになる。





404 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 01:23:26.84 ]
プリプロセッサがうまく動かないのですが、どこの記述がおかしいでしょうか?

↓正常にファイルが削除される
#include <stdio.h>
int main(){
if (remove("C:\\Documents and Settings\\user1\\hoge.dat") == 0)
 printf("削除成功");
else
 perror("削除失敗");
return 0;
}

↓ファイルが削除されない
#include <stdio.h>
#define HOGEFILE "C:\\Documents and Settings\\user1\\hoge.dat"
int main(){
if (remove(HOGEFILE) == 0)
 printf("削除成功");
else
 perror("削除失敗");
return 0;
}

405 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 01:35:38.00 ]
C++は何故、オブジェクト指向言語だと思われてるんだろう?
Stroustrup自身は、マルチパラダイム言語or効率的なライブラリ構築用言語だと表明してるのに。

406 名前: ◆QZaw55cn4c mailto:sage [2011/12/20(火) 01:47:49.75 ]
>>404
こっちではうまくいった。
codepad.org/f1VObYKz

407 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 01:51:53.23 ]
ポインタを含む構造体の配列を動的につくりたいんですが、
構造体の配列が静的にしか作れません。
中身のポインタは、要素ごとにmallocできるんですが、、、
作り方教えてください

408 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 01:56:19.16 ]
>>406
ありがとうございます!
プリプロセッサの使い方が間違っているのかどうか自信がなかったのですが、
貼る過程で省略した部分のどこかが原因のようなので
もう一度自分で考えてみます。

409 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 04:41:36.15 ]
>>405
心配するな、誰もそんなことを思っていない。オブジェクト指向でもコードが書けるCだと思ってる。
大体STLを始めとするテンプレートライブラリなんて、オブジェクト指向の真逆を突き進んでる。


410 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 05:30:32.49 ]
STLを完成させるために、C++のオブジェクト指向( クラス、テンプレート)などが整備されたんだろ。

411 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 05:42:27.19 ]
STLが先か、C++が先なのか1979年の同年でよくわからん。たぶんSTLが先でその実現のC++が整備されたと思うが。




STLのアーキテクチャの多くはアレクサンドル・ステパノフという一人の人物の手によって作られた。
1979年に彼はジェネリックプログラミングの初期アイデアを練り始め、そしてソフトウェア開発に革命をもたらす可能性を探究し始めた。
当時はジェネリックプログラミングを実際にサポートしているプログラミング言語がまだなかった。
ジェネリックプログラミングに基づくコンポーネントライブラリの包括的なアーキテクチャを開発するためには、十分な研究と実験が必要であった。
Standard Template Library - Wikipedia


ストロヴストルップはC with Classesの開発を1979年に開始した。
これらの事情を鑑みて、ストロヴストルップは当時既に汎用的な言語であったC言語にSimulaの特徴を取り入れることを試みた。
最初はクラスと派生クラス、型検査機構の強化、インライン関数、デフォルト引数の機能を、Cfrontを介してC言語に追加した。
1985年10月に最初の商用リリースがなされた[1]。1983年にはC with ClassesからC++に名称を変更した。
C++ - Wikipedia

412 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 10:22:36.07 ]
いろいろ書けるCなんだろうが実際の開発だと矛盾したスタイルが混在して困る。
言語仕様を選択できるようなビルドオプションを仕様化してくれないかな・・・

413 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 12:27:04.18 ]
>>407

int t;
int len = 100;

struct HOGE{
int *a;
} *b = (struct HOGE*)malloc(len * sizeof(struct HOGE));

for(t = 0; t < len; ++t){
b[t].a = (int*)malloc(sizeof(int));
}




414 名前:398 mailto:sage [2011/12/20(火) 14:17:13.99 ]
>>400-403
ありがとう、ちょっと元気出た

415 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 18:41:02.33 ]
>>400-403
ありがとう、ちょっと精液出た

416 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 07:51:43.03 ]
>>413
ありがとうございます。できました。

417 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 13:49:27.00 ]
sizeof(int)で4がでてきた場合、intの大きさは4バイトという認識であってますか?

418 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 14:16:08.27 ]
はい

419 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 14:22:37.56 ]
>>418
ありがとうございます
本には「大きさ」としかかかれてなかったもので

420 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 15:40:29.84 ]
#define alert() (putchar('\a'))

これは「引数のない関数形式マクロ」と解説されているのですけど、オブジェクト形式マクロとの違いがわかりません
これをオブジェクト形式マクロと解釈するのは間違っているのでしょうか?

421 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 15:51:02.25 ]
変数と、引数のない関数の違いみたいなもんじゃね

422 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 16:45:08.48 ]
#define alert() (putchar('\a'))
alert(); → (putchar('\a'));
#define alert (putchar('\a'))
alert(); → (putchar('\a'))();

423 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 17:32:57.47 ]
オブジェクトの集約をする時にはprivate継承してメンバ関数をusingするのと、メンバに持たせてメンバ関数を移譲するのどっちが一般的なんですか?
やっぱり実行時コストの掛からない前者ですかね?




424 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 17:39:20.04 ]
宣言と定義を一緒に書けば普通インライン展開されるからコスト的にそこまで差があるかは微妙

425 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 23:08:23.34 ]
どなたかお願いします。
C言語でファイルをオープンして
while(fscanf(fp,"%s",word)!=EOF){
array[i][LENGTH]=word;
printf("%s",array[i][LENGTH]);
printf("%s\n",array[i-1][LENGTH]);
i++;
}
とやったんですが、array[i][LENGTH]とarray[i-1][LENGTH]がファイルから読み込むたびに同じになってしまします。
array[0][LENGTH]=aiueo,array[1][LENGTH]=kakikukekoというように入れるにはどうしたらいいのでしょうか・・・

426 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 23:12:57.12 ]
>>425
arrayの型も書かずに質問かよ。
まぁどうせ、ポインタを代入しているってことはarray[][]がポインタなのだろうけど。
どっち途、文字列操作を勉強しなおすことをお勧めする。

427 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 23:21:54.55 ]
>>426
ありがとうございます。

char *array[i][100]としてます。
うーん、ちょっと文字列操作について調べてみます・・・

428 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 23:52:55.42 ]
>>425,427
#include <stdio.h>
#include <string.h>
#define LENGTH 100

int main(){
FILE *fp;
char array[1000][LENGTH];
char word[LENGTH];
int i = 0;

fp = fopen("a.c", "r");
while (fscanf(fp, "%s", word) != EOF) {
/* array[i][LENGTH] = word; */
strcpy(array[i], word);
/* printf("%d %s¥n", i, array[i]); */
printf("%d %s¥n", i - 1, array[i - 1]);
i++;
}

return 0;
}

429 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:13:11.04 ]
>>428
ありがとございます!できました。
ポインタについてかなり詳しく勉強しないと・・・ってことがわかりました><
またお願いします!

430 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:15:10.04 ]
配列に、文字列自体を入れてる、つもり、だよな
だが、そうはなっていない。
代わりに入っているのは…。

もし、それっぽい素養があれば、
printf("%x",array[i][LENGTH]);
printf("%X\n",array[i-1][LENGTH]);
と書けば、何かに気づくかも。

431 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 15:12:10.83 ]
アドレス代入で文字列コピーしようとする人は、他言語から来た人なのかな

432 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 18:17:16.33 ]
こんにちは。
C++とDXライブラリでちょっとしたゲームを作り始めたんですが、
vectorにキャラクターを入れて、アルゴリズムのsortでキャラクターの素早さ順に並び替える時に、
素早さの値が同じだった場合、1/2の確率で順番が逆転するようにしたいんですが、sortでは無理でしょうか?

キャラクタ1 素早さ8
キャラクタ2 素早さ8
キャラクタ3 素早さ10

↑のような場合、普通にやると

キャラクタ3、キャラクタ1、キャラクタ2の順番でソートされると思いますが、どうにか50%の確率で
キャラクタ3、キャラクタ2、キャラクタ1の順番にもソートされるようにしたいのです。

sortじゃなくてもなにか方法があれば是非教えてください。

433 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 18:55:55.91 ]
sortに渡す比較関数に乱数をもたせる

class CompSpeed {
public:
CompSpeed(unsigned long seed) : mRandom(seed) { }
bool operator () (Chara const & lhs, Chara const & rhs) const {
if(lsh.speed == rhs.speed) { return mRandom() % 2; } // 同じなら1/2で真、1/2で偽
else { lhs.speed > rhs.speed; } // それ以外はスピードで大なり比較
}
private:
Random mRandom;
};

sort(characters.begin(), characters.end(), CompSpeed(GetTime()) ;



434 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 18:56:03.59 ]
if(wParam(:_;) >= 0x60 && wPanda <= 0x69(^_^))

435 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 19:06:03.83 ]
MSはソートの比較関数に乱数を使う、という失敗をした事がある。

436 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 19:09:48.93 ]
一旦普通に並び替えて
同じ値の範囲を探してランダム並び替え

437 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 20:14:06.92 ]
>>433
ソートが終わらなくなる、とかいう危険はないよね?

438 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 20:47:41.72 ]
>>437
> ソートが終わらなくなる、とかいう危険はないよね?
sortのアルゴリズムと運によってはある。だから>>436の方向が無難

439 名前:432 mailto:sage [2011/12/23(金) 21:23:10.08 ]
アドバイスありがとうございます。
>>433の方法試してみたら、invalid operator< のエラーが出てしまいました。
原因が分からないので、>>436でやってみようと思います。

440 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 22:02:14.62 ]
{素早さ}<<4 | {0-15の乱数} でソートはどう

441 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 03:07:02.28 ]
CまたはC++でFlashみたいなヌルヌルアニメーションするグラフィカルなGUIソフトを
作りたいんですが、何を使えば楽に作製できますか?
今はC++とWin32APIで作ってるけど、どうも古臭い見た目になってしまう

442 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 04:59:37.81 ]
C++ DirectX

443 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 07:45:30.21 ]
ある意味ズルだが、.NET併用
詳しくないんで雑談としてだが、今風のUIコンポーネントのライブラリは多少充実してるらしい



444 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 08:22:36.72 ]
スキンはプロクラムと別。小説の挿絵に小説家と別人がかいてたりする。

445 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 01:20:49.67 ]
>>441-442
ありがとう、DirectXか.NETか。
DirectXは本1冊だけだけど読んだから、やりたい処理を組む際の必要な勉強量は少ない
だろうけど、組むのが面倒そうだなと思っちゃう。
一度機能毎に細かく分けて作っておけばそうでもないんだろうけど。
.NETは触ったことも無いんだけど、開発効率よさそうだね。ちょっと.NET調べてみる
>>444
そうなんだろうけど、一人で全部やらなきゃいけないのよ
研究展示で人に触って貰えるように、GUIで操作できるようにしているんだけど
どうせならかっこいいインターフェースの方が受けいいし
中身はデータベース処理なんだけど、この結果を視覚的に表現したい
ここでヌルヌルアニメーションしたいんだよね。
例えるならスパイシーっぽい感じだけど、そんなに凝る気もなくある程度簡素なのを

446 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 06:12:25.79 ]
スパイシーwwwwwwwwwwwww

447 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 07:16:57.66 ]
スパイシーって韓国料理みたいな意味か
タイ料理ならまだかっこいいが

448 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 09:46:41.54 ]
ああ、デプロイを考えなくていいプロジェクトなのね
案外、HTML5で書いたほうがさくさくUIいけるかもねー。

ターゲットとUIのisolationにもなる。

C++でhttp鯖か串をビルドして、CGIでターゲット?に生命令を送ったらどうか
俺はいじり慣れてるからprivoxyを薦めるが、要するに、そんなのだ

449 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 09:48:03.76 ]
ああごめん、DBって書いてた
ターゲット(ボード)っていうより、core process か。

450 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 13:59:56.65 ]
>>448-4449
ありがとう、ユーザーインターフェイス面はHTML5で作成してブラウザで賄うってことか
それはかなり便利そう。だけど来月中旬には完成させたいので今からHTML5勉強して
実用域までもっていくのは辛いです。
.NETも調べてみたらこの目的だと辛そうだし、やっぱDirectXまたはOpenGLで作ってみる
ことにします。後々のAndroidへの移植も考えてOpenGLでいこうかな

451 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:15:58.75 ]
>>450
来月中旬までなら、丸々一週間は勉強する時間があるじゃないか。

452 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:38:46.40 ]
HTML5は最たるものだが、legalにパクってこれるものは、パクっていい。
よさげなUIがあって、それが誰でも使っていいライブラリの仕事だったら、
あなたが使ってもいい。

DX/GLに、そんなパクりやすいライブラリあるのかな、と思うが、あるのかもしらん

453 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 20:02:39.02 ]
スマポ(あるいは薄いラッパー系やプロクシ)作るときにoperator &はどう作るのが一般的なんだろうか
ラップしてる方のアドレスか、中身のアドレスか



454 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 20:19:14.58 ]
すまぽを自作しようなんて思うなってばっちゃんが言ってた

# 覚悟を決めて、「車輪は一度は作って壊してみるもの」をやってみる。

455 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 23:30:42.65 ]
>>454
確かに、研究や腕試しなら作ってみるのもいいけど実用ならそれなりにメジャーな出来合いのものを使うべきだな。


>>453
> スマポ(あるいは薄いラッパー系やプロクシ)作るときにoperator &はどう作るのが一般的なんだろうか
> ラップしてる方のアドレスか、中身のアドレスか
独自には作らずそのままスマポ自体のインスタンスのアドレスを取得させるのが普通。

456 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 15:55:45.10 ]
int a[N] = { 1, 5, 0 , 3, ... } ;

//A
vecor<int> v(a, a + N);

//B
vector<int> v;
v.reserve(N);
v.assign(a, a + N);


AとBってどっちが速いですかね?

457 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 15:57:24.46 ]
つ[実測]

458 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 16:06:46.17 ]
普通に考えたらAのほうがいいしBのreserveは不要
でもパフォーマンス問題は実測が基本

459 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 10:28:21.99 ]
初心者本読んでてわからない事が出たんで教えてくらはい

const char* name = GetOldMonthName(int month); //昔の月の名前で表示する関数。前の方で定義済み。
cout << name << endl;
ってのがあるんですが、表示されるのはポインタnameに格納されてるアドレスではないのですか?
実際やって見ると参照先が表示されます
cout << *nameに変えると何も表示されませんでした。

int a = 10;
int* p = &a;
cout << p << endl;
とした場合にはpにあるアドレスが表示されるので
どこで違いがあるのかがわかりません

460 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 10:36:50.65 ]
int a[10]とchar a[10]でも違うだろ。
文字列型だけ特別扱いされて、アドレス渡すと中身が表示される。

461 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 10:39:27.10 ]
cout << (int)name << endl;

cout << *(int*)name << endl;

にしたら何か数字出る。

462 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 10:48:58.27 ]
ありがとうございます。
>>460
そういう事でしたか。
文字列のところとcoutのところもう一度読み直しておきます。
>>461
両方数字が出ました。下はマイナスで上より桁が大きかったです。
キャストってやつなのかな。これも読んでおきます。

463 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 17:09:57.78 ]
派生クラスでメンバ関数を呼び出したらすべての基底クラスの同名同シグネチャのメンバ関数をすべて呼び出す
みたいなコードはちまちま手書きで書かないと作れない?
デストラクタみたいに勝手にやってくれると楽なんだけど



464 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 18:09:05.38 ]
たいていそういうのに限って、関数によって、少しずつ、後先が違ってないか

465 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 18:18:38.26 ]
違う分だけ書き足すってのがふつうじゃないか

466 名前:デフォルトの名無しさん mailto:sage [2012/01/04(水) 21:39:42.10 ]
前関数を呼ぶ位置の後先が、全部同じなのか?たいてい、少しずつ、、

467 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 09:27:53.08 ]
10件のデータを読込み、最大、最小値を求め表示するプログラムなのですが
ここでは体重にしました。よく分からないので教えていただけないでしょうか。
参考書を読みながら書いてみましたがfor以降がイマイチ分かりません。

#include<stdio.h>
int main(void)
{
float w_max,w_min,weight;
int i;
for(i=0;i<10;i++){
scanf("%f",weight[i]);
if(w_max < weight[i])
w_max = weight[i];
if(w_min > weight[i])
w_min = weight[i];
}

for(i=0;i<10;i++){

//不明
}


printf("i= %d w_max=%f w_min= %f\n", i, w_max, w_min);

return 0;
}

468 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 10:40:07.17 ]
内容的に宿題スレですね
すいませんでした。

469 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 11:29:40.25 ]
>>467
その条件だけなら、二番目のループ自体不要だろ。
ついでに言えば、その後のiの出力も意味がない。

470 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 17:06:06.20 ]
Cの宿題なら、「該当行で出力されるiの値はいくらか。」って聞かれてもいいな

471 名前:デフォルトの名無しさん [2012/01/18(水) 23:25:45.05 ]
こんにちは。C++とDXライブラリでしょぼいけどゲーム作っています。質問させてください。

二次元ベクタにキャラクターを入れて、その全てを描画する方法として、例えば、

vector<vector<Character>> Chara;
for(int y=0;y<Chara.size();y++)
for(int x=0;x<Chara[y].size();x++)
Chara[y][x].Draw();

という方法があると思います。
また、例えば、キャラクターのHPが0になっている者を探し、
そのHPを回復させるとしたら、

for(int y=0;y<Chara.size();y++)
for(int x=0;x<Chara[y].size();x++)
if(Chara[y][x].HP==0)Chara[y][x].HP+=100;

みたいな感じになると思うんですが、
for文で回しているところが、重複して無駄な感じがするので、
テンプレート関数とかを使って、何か上手く出来ないかと悩んでいます。

AllDo(Chara,Draw());
AllDo(Chara,Recover()); ←みたいに出来ればすっきりするんですが・・・。
どう書いたらいいのか頭がこんがらがってしまって(汗)
どなたかご教授下さい。よろしくお願いします。

472 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 00:36:26.93 ]
0x使ってもよさ気だから、forを関数にして中身をラムダで書けばいい

473 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 01:13:26.33 ]
template<class F>
void AllDo(vector< vector<Character> > & v, F f)
{
for(int y(0); y < v.size(); ++y)
for(int x(0); x < v[y].size(); ++x)
f(v[y][x]);
}



474 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 01:15:39.75 ]
イテレーターを作ってstd::for_eachだろ

475 名前:471 mailto:sage [2012/01/19(木) 05:27:53.71 ]
ラムダ式すっごい楽です!
まだC++始めて日が浅いのでこの機能は知りませんでした!
>>472-474
教えてくださった皆さんありがとうございました。

476 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 17:08:39.53 ]
Windows7 64bit版のポインタのサイズって64bitで合ってる?

477 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 17:11:41.59 ]
いいえ

478 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 17:23:09.98 ]
てことは、64bit版もポインタのサイズは32bitなのか
ありがとう

479 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 17:36:37.31 ]
てことは
はどこに掛かってるんですか

480 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 17:50:36.19 ]
いいえ

481 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 17:54:12.44 ]
言い得て事は

482 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 18:00:41.14 ]
>>476
16bitは動かないから、32bitまたは64bitじゃないかな

483 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 18:04:16.54 ]
なんでポインタのサイズなんて気にするの?
実質ただの整数なんだから32でも64でも大差ないでしょ



484 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 18:10:11.41 ]
>>476
VCならばこのあたりに注意すれば十分かと
ttp://msdn.microsoft.com/ja-jp/library/3b2e7499.aspx

485 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 18:18:18.31 ]
わかんなかったら全部64bit整数でショリすれば問題ない






[ 続きを読む ] / [ 携帯版 ]

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

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