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


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

【初心者歓迎】C/C++室 Ver.57【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 22:39:18 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。

【前スレ】
【初心者歓迎】C/C++室 Ver.56【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1215278693/

【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

◆ソースのインデントについて
半角やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのが最も良いですが、
直接貼るのであれば、全角空白か に置換しておくことをお勧めします。

411 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:15:34 ]
Test<T> Test<T>::operator+(const Test<T>& t)
じゃない?

const Test<T> Test<T>::operator+(const Test<T>& t)
このほうがいいかな

412 名前:410 mailto:sage [2008/07/27(日) 18:25:03 ]
おお!
ありがとうございます m(_ _)m

続けて質問して申し訳ないのですが、
const をつけると付けないとではどのようなちがいがあるのでしょうか?

413 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:34:16 ]
クラスのメンバ変数をポインタ型にすると
メンバ変数が定義されていないとか言うんだけど
何これ…

414 名前:413 mailto:sage [2008/07/27(日) 18:41:51 ]
間違えた
メンバ変数じゃなくてメンバ関数をポインタ型にすると
メンバ変数が定義されていないって出る

415 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:42:39 ]
class hoge{


416 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:46:14 ]
直感で
static付けたらどうでしょうと言ってみよう

417 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:48:36 ]
メンバ関数をポインタ型?
メンバ変数をメンバ関数ポインタの型にするって事か?

418 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:54:38 ]
>>417
class A{
    praivate:
     int *a;
    public:
     void *get_a();
}
void A::*get_a()
{
  return a;
}

aが定義されていない識別子です

ってなる

419 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:56:44 ]
void* A::get_a()



420 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:58:56 ]
voidじゃなくてintだった…
>>419
解決した。ありがとう!

421 名前:デフォルトの名無しさん [2008/07/27(日) 18:59:27 ]
すみません。。。お尋ねしたいのですが、
GDBでUTF-8の内容を表示させるにはどうすればよいのでしょうか?
ご存知の方がいらっしゃいましたら何卒ご教授下さい。
よろしくお願いいたします。

422 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:37:58 ]
TCHAR pString[64] ;
std::wcin.getline(pString, 64) ;

が入力を待たずに終わってしまいます。
プロジェクトを別に作って試したんですが他ではちゃんと入力を待ってます。

どういう状況の時だと処理を待たずに終了してしまうのでしょうか?

423 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:52:06 ]
>>422
現象とは関係ないけど、それ、wchar_tかWCHARを使ったほうがいいよ。

424 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:15:58 ]
>>422
直前で数値や文字列を入力したときに改行が残ったままになってるとか

425 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:25:08 ]
文字列に指定した文字がいくつあるか調べる関数を作成して、実際にキーボードから文字を入力して文字の個数を調べるコードを書いたのですが。
include <iostream>
#include <string>
using namespace std;

//関数countの宣言
int count(char str[], char ch);

//指定した文字数を調べるプログラム

int main()
{
char str[256]; //入力する文字列
char c; //調べる文字
int sum; //文字数

cout << "文字列を入力してください\n";
cin >> str;

cout << "探したい文字を入力してください\n";
cin >> c;

sum = count(str, c);

cout << str << "の中に" << c << "は" << sum << "個あります\n";
return 0;
}

426 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:26:14 ]
//関数countの定義
int count(char str[], char ch){
int j; //文字列の文字数
int i;
int num = 0; //カウントする変数

j = strlen(str);

for(i = 0; i < j; i++){
if(str[i] == ch){
num++;
}
}
return num;
}

これで実行してちゃんとカウントできたのですが、無駄過ぎる文はありませんか?
指摘お願いします。
連投すいません;; 

427 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:29:50 ]
>>426
sum = std::count( str.begin(), str.end(), c )



428 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:30:22 ]

 std::string と std;;wstring で template を使って関数を共通化したいんだけど,
文字列リテラル ( "hoge" と L"hoge") や,文字型の違い ( 'a' と L'a') を吸収するには
どうやったらいいの?

 例えば,バックスラッシュを付け足す場合とか.

template <typename string_type>
string_type& AddBackSlash(string_type& str)
{
  return str += '\\';//← wstring の場合は L'\\' にしたい,
}

429 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:31:09 ]
>>427
ありがとうございます!



430 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:37:12 ]
>>428
特殊化

431 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:58:44 ]
おすすめのエディタ教えてください!
今までC言語を始めよう!というフリーソフトを使ってきました

432 名前:428 mailto:sage [2008/07/27(日) 21:13:16 ]

>>430 ありがとうございます.特殊化するということはコピペして,wstring に置換して, L を付ける作業をするしかないですかね…

template <typename string_type>
string_type& AddHoge(string_type& str)
{
  string_type strInternal = "foo";
  return str += "Hoge";
}

//特殊化
template<>
std::wstring& AddHoge<std::wstring>(std::wstring& str)
{
  std::wstring strInternal = L"foo";
  return str += L"Hoge";
}

433 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 21:32:49 ]
>>423-424
ありがとうございます、>>424さんが言われたとおり直前で数値をwcinにて
受け取ってます。それをコメントアウトしたらgetineのとこで処理が
止まりました。

原因はわかったのですがどうやって回避してよいのでしょうか?^^;


434 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 21:41:25 ]
std::vector<double> v(100);
このとき確保されるメモリは実装しだい?

435 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 21:56:05 ]
はい。sizeof(double)*100かもしれませんし、*128かもしれません。

436 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 21:57:02 ]
>>431
結局は好みだから使ってみて気にいったのを使えよ。
因みに俺はemacs使ってる。

437 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 22:03:18 ]
>>426

 strlen(str) で文字列の末尾まで '\0' を検索した後に,
再び文字を検索するのが無駄と言えば無駄かも.


int count(const char str[], const char ch)
{
  int num = 0; //カウントする変数

  while( *str != '\0' ) if( *str++ == ch ) num++;

  return num;
}

438 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 22:08:45 ]
int count(const char * const str, const char ch)
{
unsigned num = 0;
for (char const * p = str; (p = strchr(p, ch)) != NULL; ++p) ++num;
return num;
}

439 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 23:13:07 ]
nul終端文字列ってほんと頭悪い仕様だよな。色々非効率だし。



440 名前:437 mailto:sage [2008/07/28(月) 01:14:04 ]

>>438 そんなに変わらないだろうと思ってたけど,ずいぶん速いな

441 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:34:49 ]
>>439
PASCAL stringを授けよう。

442 名前:デフォルトの名無しさん [2008/07/28(月) 02:20:14 ]
メッセージプロシジャでWM_CHARが送られてきた時、
OnKeyDownという関数にwpとlpをそのまま渡しています。
そして、押されたキーが"v"だった時だけ処理をしたいのでstrcmpを使ってみたのですが
そこで強制終了してしまいます。正しくはどう書いたらよいのでしょうか?
教えてください。お願いします。

OnKeyDown(WPARAM wp, LPARAM lp)
{
switch(wp)
{
case VK_RETURN:
break;



default:
if(strcmp((char*)wp,"v") == 0)
{
//キーがvだった時の処理
}
}


443 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 02:26:08 ]
>>442
一文字だったら *(char*)wp == 'v' とかでどうなんだろう
あとメッセージボックスなんかでwpの中身確認してみたらどうだろうか

ついでにこっちの方が回答もらいやすいかもね
Win32API質問箱 Build68
pc11.2ch.net/test/read.cgi/tech/1215348804/

444 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 02:31:31 ]
>>443
MessageBoxに表示させようと
wpをchar*にキャストしたら同じように落ちました・・・
とりあえずそっちで聞いてきます。
ありがとうございました。

445 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 11:16:35 ]
初心者ですがC言語を覚えるには数学ができないと駄目ですか?

446 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 11:19:21 ]
C言語だけなら算数が出来れば十分
3Dやら暗号やら圧縮やらを扱いたいなら数学が必要になってくるかも

447 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 11:21:27 ]
446さんありがとうございます。

448 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 11:29:53 ]
C言語で仮に3Dアクションゲームを造るとすると最低限高校1年の数学と物理が理解できればチャレンジしても無謀ではないですか?
数学:sin cos tan(三角関数?)等
物理:ベクトル等

449 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 11:34:01 ]
うん、あと行列がわかってれば
物理演算しようってわけじゃないんだから、完全な理解も必要なし



450 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 11:39:08 ]
ライブラリ使えば自分で計算する必要ももちろんないしね

451 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 13:18:58 ]
まぁ行列分かってれば中学生でもできるよ。

452 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:03:08 ]
まぁそれをいったら
ベクトルが分かっててプログラミングができるなら小学生にもできるよ、って話だけどな

453 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:04:41 ]
ベクトルも行列もプログラミングも分からない大学生にはできないといいたい訳だな

454 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:13:46 ]
分からなきゃ勉強するまでさ。
今までだってそうやってきただろ?

455 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:15:05 ]
>>454
>>453 に例示されるような人はおそらく勉強しないでしょう

456 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:27:06 ]
スレ違いだと思いますが流れ的に質問させてください。
CとC++とwindowsプログラミングを一通り勉強したので
次にDirectXの勉強をしようと思っているのですが、勉強する前に三角関数・ベクトル・行列を復習してから(曖昧なので)
DirectXの勉強をしたほうが理解が深まると思うのですがどう思いますか?

先輩方アドバイスよろしくお願いします。

457 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:29:49 ]
先にDirectXのチュートリアルでもやった方が良い

458 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:30:12 ]
>>456
目的にもよりますが Direct3D を勉強しながら分からないところを調べるほうがオススメ

459 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:30:21 ]
DirectX進めながら解らないところが出るたびに数学の教科書を見るのでも別に構わんとは思う



460 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:33:25 ]
1からやるわけでもないしな。
思い出すのなら必要なことが出てからでも、今やってることが止まることも無いでしょう。

461 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:37:48 ]
DirectX=3Dじゃないと思うんだけど

462 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:38:01 ]
>>457 >>458 >>459 >>460
アドバイスありがとうございます。
この夏休みでDirectXの基本をマスターして3Dゲームが作れるようにがんばります。

463 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:38:45 ]
>>461
そうなんですか?
勘違いしていたみたいです・・。
もう少し調べてみます。

464 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:43:38 ]
>>461
DirectXの描画は基本3Dじゃなかったっけ

465 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:47:03 ]
Drawが葬られたからね。

466 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:48:25 ]
実はDirectSoundだけ使いたい・・・なんてことはないか

467 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 14:49:42 ]
>>464-465
そうだった
昔2D描画用のがあったんだけどもうなくなったんだね
あれ結構評判良かったのに

468 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:02:03 ]
今でもDirectDrawは使えるし、地味にアップデートもされてる(もうされないだろうけど)
ドキュメントが無くなったけどな

469 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:38:04 ]
引数←読み方インスウだと思ってたけど
ヒキスウって最近知った



470 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:48:16 ]
returnされる値は
カエリチ?ヘンチ?

471 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:48:56 ]
返り血

472 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:53:39 ]
>>469
どーぞくハケーン

473 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:54:36 ]
独学でやってたってことかな
授業とかでやったら確実に発音するでしょ

474 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:58:05 ]
>>470
俺はモドリチ

475 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:00:15 ]
普通、戻り値だよな

476 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:03:54 ]
オレも返り値は返り血に聞こえるから戻り値

477 名前:デフォルトの名無しさん [2008/07/28(月) 17:05:45 ]
リターンチだろ

478 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:07:41 ]
どれも同じだ

479 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:12:31 ]
スタックの血を浴びて 〜社会不適応者のデスマーチ奮闘記〜



480 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:37:50 ]
新ジャンル:仕事人間サスペンスホラー

481 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 20:39:33 ]
ああ、よく考えたら俺も戻り血だったわ。

482 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 20:52:11 ]
オレは「戻り値として0を返す」とかいう。
でも「返り値として0を戻す」はいったことないな。

483 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:21:23 ]
俺は「返り値として」には違和感がある
返り値を使うなら「返り値をaに戻す/返す/当てる」とかは言う
返り値の値に言及する時は思いつかない

484 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:56:44 ]
const std::string& GeRefOfFuncStaticString(int n)
{
  static std::string str = boost::lexical_cast<std::string>(n);
  return str;
}

const std::string g_strNotFound("NotFound");

const std::string& GeRefOfFuncStaticString2(int n)
{
  static std::map<int,std::string> mapStr;
  if( mapStr.empty() )
  {
    mapStr.insert( std::make_pair(100, "100") );
    mapStr.insert( std::make_pair(101, "101") );
  }

  std::map<int,std::string>::const_iterator itrFound = mapStr.find(n);
  return itrFound != mapStr.end() ? itrFound->second : g_strNotFound;
}

int _tmain(int argc, _TCHAR* argv[])
{
  std::cout << GeRefOfFuncStaticString( 100 ) << std::endl; // 表示: 100
  std::cout << GeRefOfFuncStaticString( 101 ) << std::endl; // 表示: 100 ← 関数内の static 変数の参照を取り出せない
  std::cout << GeRefOfFuncStaticString2( 100 ) << std::endl; // 表示: 100
  std::cout << GeRefOfFuncStaticString2( 101 ) << std::endl; // 表示: 101
  return 0;
}

 map を使った場合の GeRefOfFuncStaticString2( ) は意図した動作になるんですが,たまたまでしょうか?

485 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 01:24:05 ]
>std::cout << GeRefOfFuncStaticString( 101 ) << std::endl; // 表示: 100 ← 関数内の static 変数の参照を取り出せない

関数内のstatic変数の参照を取り出してますよ。

486 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 01:43:11 ]
>>485 解答ありがとうございます.恥ずかしながら static に関してすごい勘違いをしていたようです.
 初期化が一度しか行われないんですね.以下のようにして GeRefOfFuncStaticString() でも望みどおりの
動作が出来るようになりました.
 有難うございました.

const std::string& GeRefOfFuncStaticString(int n)
{
  static std::string str;
  str = boost::lexical_cast<std::string>(n);
  return str;
}


487 名前:デフォルトの名無しさん [2008/07/29(火) 03:24:06 ]
a

488 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 07:50:00 ]
static変数が緊急対応以外で必要になったときは設計ミス。

489 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 08:06:38 ]
何故static変数にいちいち保存しているのかが謎。



490 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 09:24:49 ]
便乗質問なんだけど

const std::string& GeRefOfFuncStaticString(int n)
{
  static std::string str = boost::lexical_cast<std::string>(n);
  return str;
}

これ static のところ、いつ初期化されるんだ? 今までプログラム
起動時(main以前)だと思ってたんだが、nが関数の呼び出し時に
決まるじゃん。

内部で
if(関数の初回呼び出しなら){
  str = boost::lexical_cast<std::string>(n);
}

みたいなコードにコンパイルされるわけ?
>>484の挙動見ているとそう見えるんだが…

491 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 09:36:58 ]
>>490
それであってる。
ちなみに初期化についてスレッドセーフである保証は無いので、
マルチスレッドのプログラムで排他せずにstatic変数使ったら、
いつ異常動作してもおかしくない。

492 名前:デフォルトの名無しさん [2008/07/29(火) 10:07:55 ]
標準ライブラリのメンバ関数までが詳細に載ってるページってありますか?
探したけど俺の目が悪いんだろうか、見つかりません;;
だれか教えてください

もしくは、この質問に答えてください。

istringstreamのオブジェクトに、文字列を代入(?)するとき、
istringstream is(string("abc"));
のように初期化ではなくて、あとから代入することはできますか?
やり方を教えてください。

493 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 10:18:55 ]
>>491
いつの間にそうなったんだ…

関数呼び出し時に初回判定が入るんじゃあパフォーマンス
に悪影響があるだろうが。

func(){
static int a = 100;
}

は昔どおり初回判定なんか入らないよな?

494 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 10:34:42 ]
>>493
昔から変わってないよ。その int の例でも、関数内で値の変更があったり、
ポインタや参照を外に渡してしまっている場合は初回判定が必要になるでしょ。

495 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 10:35:44 ]
昔どおりも何も、単に最適化で判定が消えてるだけだろ

496 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 10:37:38 ]
>>495>>493

497 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 10:38:57 ]
>>492
istringstream ではなくて stringstream を使ってみては?

498 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 10:41:57 ]
>>492
www.cppreference.com/
www.cppll.jp/cppreference/
msdn.microsoft.com/ja-jp/library/cscc687y.aspx

is.str("abc");

499 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 10:42:21 ]
定数での初期化なら、初回実行時でなくmainの前にされたりするよ。
その辺の最適化は処理系定義。

引数で初期化したら、まず確実に判定が入る。



500 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:07:28 ]
std::wofstreamを使ってテキストに書き込む時自動的にファイルの
頭にBOMを追加してくるみたいなものって存在しますか?

自分で先に書くのが普通でしょうか?

自分でFF FE をファイルと開いて書き込んでから
wofstreamを使うと先に書き込んだ2バイトが消されてしまい途方にくれて
おります・・・・

501 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:09:44 ]
自分で先に書くのが普通。

502 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:22:18 ]
std:ios::app だっけ?

503 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:22:48 ]
>>499
つまり、関数内のstatic変数の初期値が定数じゃない限り、初回確認用のフラグもstatic領域に用意されるわけだな。

504 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:36:53 ]
>>501-502
std:ios::appでBOMが残せましたmありがとうございます!

505 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:43:28 ]
>>494
一連のレスは理解できるのだが、

> int の例でも、関数内で値の変更があったり、
>ポインタや参照を外に渡してしまっている場合は初回判定が必要

これが分からん。

プログラムロード時にaが100になるでしょ。それで、関数内で
値の変更があったり、 ポインタや参照を外に渡してしまっている
場合はどうして初回判定が必要になるの?

506 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:48:26 ]
>>505
例えばこんなケース。

int func(int n)
{
static int a = n;
return a;
}

int main()
{
for (int a = 2; a <= 5; ++a) {
printf("%d, %d\n", a, func(a));
}
return 0;
}

507 名前:494 mailto:sage [2008/07/29(火) 12:23:54 ]
>>505
変数宣言通過時に初期化されるんなら初回判定が必要かと思ったんだけど、
プログラム起動時に初期化してもいいみたい。

ってことで >494 は間違いで、初回判定が必要になるのは初期値が定数式じゃないときね。


ごめんよ >>506

508 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 14:13:54 ]
横から失礼します
ファイル中のN個の値で、配列a[N]を作りたいんですが
うまいやり方が思いつかないので、どなたか教えていただけませんか?

509 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 14:15:51 ]
>>508
mallocの使い方を聞いてるのか?



510 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 14:19:20 ]
malloc( new? ) を使えば出来るんですね。やってみます。


511 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 16:37:39 ]
std::vector<型> a(N);でもよいぞ






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

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

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