- 1 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:18:41 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.47【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1200464091/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 137 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:14:24 ]
- JISならオンラインで読めるじゃん。画像だけど。
- 138 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:17:09 ]
- Visual C++ 6.0を使っているんですけど
C++のプログラムを実行すると c:\program files\microsoft visual studio\vc98\include\new(16) : error C2143: 構文エラー : ';' が '<class-head>' の前に必要です。 c:\program files\microsoft visual studio\vc98\include\new(16) : error C2501: '_STD_BEGIN' : 識別名を宣言するのに、型が指定されていません。 c:\program files\microsoft visual studio\vc98\include\new(16) : fatal error C1004: 予期せぬ EOF が検出されました。 と出てしまいます。 どんなプログラムでもこのエラーが出てしまい実行できません… どのようにすればこのエラーはなくなりますか?
- 139 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:18:22 ]
- >>137
そこでドラフトですよ。 若干現規格と違うけど、 古いドラフトだとまあまあ現規格に近いから十分参考にはなる。
- 140 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:25:29 ]
- >>138
必要なものが入ってないか入れる設定にしていない。 _STD_BEGINってのはSTLが使う宣言だからSTLが使えないんだろう。 (vectorでも使ってるんかね?) 俺はSTL使ってないんで後はぐーぐる先生か他の人にまかすわ
- 141 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:37:29 ]
- >>137
>>139 あれ検索できないから不便ですよね。まあ無料なのでたまに見ますが。 正式版を無料で配布して欲しいですね。
- 142 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:03:32 ]
- >>138
Visual C++ 2008 Expressとかだとどうなる?
- 143 名前:デフォルトの名無しさん [2008/02/07(木) 22:50:19 ]
- >>105
(遅くなりましたが) ありがとうございました。
- 144 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:20:56 ]
- >>128
標準では用意されていないので、人によっては解放したらその領域を指 していたポインタ変数を (* 自分で *) NULL にしておくようにしてい る人もいる。 どっちかって言うと、バグってた時の二重解放除けとか、変な領域を壊さ ないようにと言う防御策だが。 void a( void** p ) { if( rand() %2 ) delete *p; } void main () { char*pc = new char[100]; a(&pc); // pcが解放されてなかったら解放 if( soreppoino( pc ) ) delete pc; }
- 145 名前:デフォルトの名無しさん [2008/02/08(金) 01:48:10 ]
- 確保していないのにdeleteするとバグるんですが対処法ありますか
- 146 名前:デフォルトの名無しさん [2008/02/08(金) 01:50:44 ]
- 単独ではつかわないでコンストラクタ、デストラクタ内で使えば安全かなあ
- 147 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:59:05 ]
- void a( void** p ) {
if( rand() %2 ){ delete *p; *p = NULL; // delete後はNULLを入れておく } } void main () { char*pc = NULL; // ポインタは普通NULLで初期化しておく if( rand() %2 ) new char[100]; a(&pc); delete pc; // pcがNULLなら何もしない }
- 148 名前:デフォルトの名無しさん [2008/02/08(金) 01:59:41 ]
- while (cin) {
... } という処理についてなんですが、cinって最初はとりあえずtrueになるのですか? すると、いつfalseになるんですか? エラーフラグがたってればfalse、それ以外はtrueになるのかな? cinで何かデータを読み込んだ後だけtrueになるのかと思ってました。
- 149 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:00:03 ]
- > new char[100];
pc = new char[100] でした。
- 150 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:04:09 ]
- スタート
↓ 標準入力からデータがcinに行く ↓ cinがtrueになる ↓ while(cin)が評価される というかんじなんじゃね?
- 151 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 02:12:09 ]
- >>147
C++では汎用ポインタへのポインタって合法だったっけ。
- 152 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 03:44:28 ]
- 問題ない。
- 153 名前:デフォルトの名無しさん [2008/02/08(金) 03:55:20 ]
- coutとfstream(適当なファイルに対してオープン済みのもの)とのそれぞれに、ほぼ同じ処理を書くのですが、
1つの関数にまとめたいと思うのですが、どうすればいいでしょうか? void print((型が分からない) stream) { stream << "hogehoge" << endl; ... } こんなのも考えてみたのですが、コンパイルできず、ダメでした。 template<class T> void print(char *filename) { T outStream; if (filename) outStream.open(filename); outStream << "hogehoge" << endl; ... } どうかよろしくお願いします。
- 154 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 07:25:40 ]
- >>138
new ヘッダをインクルードする前に new をマクロで置き換えてないか?
- 155 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 10:49:42 ]
- >>153
std::ostream
- 156 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 11:53:19 ]
- サクラエディタのソースコードを眺めていたのですが、コメント部でよくわからない表記があります。
@param などはなんとなく想像がつくのですが、「//!<」や「/*! */」は何を意図しているのでしょうか。 どなたか教えてください。
- 157 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 11:57:37 ]
- >>156
つ[Doxygen]
- 158 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 11:59:11 ]
- まさに、それですね。
ありがとうございました。
- 159 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:23:53 ]
- 例外処理の使い方がいまいち分かりません
例外を投げたらその処理の中で解決した方が良いのか それとも解決方法を使う側に投げっぱなしにしてしまうのか 例外をどういう形でthrowするのがいいのか なんというか感覚的に掴みにくいというかなんというか
- 160 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:25:33 ]
- 無用物
- 161 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:32:44 ]
- 参照を返すとオブジェクトが捨てられたときに
帰ってきたものも向こうに?
- 162 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:34:05 ]
- >>159
自関数の中でリカバリできるならcatchして処理すればよい そうでないなら呼び出し元にまかせる 普通のエラー処理と同じようなもんだ 自分で処理できるならして、処理できないなら呼び出し元にエラーコードなりなんなりをreturnするだろう エラーコードのreturnが例外のthrowに変わるだけ
- 163 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:34:37 ]
- >>161
日本語で
- 164 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:48:01 ]
- >>162
そういう感じで良いんですか 気軽に使えるなら使ってみようかな・・・
- 165 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:03:21 ]
- とある3種類の計測器をモニターするプログラムなんですが
似てるけど若干ちがう命令が3つあるとします この場合 クラス分けをしていくとき 計器の共通化持つクラスを基底として、それぞれの機能をもつ派生クラスを作るか 機能の共通処理をもつクラスを基底として、それぞれの計器にあわせて派生クラスを作るか どちらが今後計器が増える可能性を加味したとき、よい設計でしょうか
- 166 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:07:41 ]
- >>165
その計測器メーカに合わせるのが一番。 あるメーカは旧型機種の機能を改変しつつ新機能を作るかもしれないし、 あるメーカは旧型機種の機能を残しつつ新機能を作るかもしれない。 なんてことは兎も角、使い易いように作れば?
- 167 名前:138 mailto:sage [2008/02/08(金) 15:05:04 ]
- 返信遅くなってすいません!
>>140 STLは使ってなくてもこのエラーなんですよ… Hello Worldみたいな文字を出力するだけのプログラムでも 実行できないです。 >>142 Visual C++ 2008 Express Editionで実行したらできました! ありがとうございます。 >>154 マクロも使ってないので違うと思うのですが… Visual C++ 6.0を使い慣れているので どうにかして実行させたいのですが・・・
- 168 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:22:22 ]
- class Fruit;
class Apple : Fruit; std::vector<Fruit> fruits;を作ると 抽象クラスをインスタンス化できません。 と言われるです。どうするですか?
- 169 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:23:31 ]
- Fruit がそういうつくりになってるんじゃないの?
- 170 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:24:38 ]
- >>168
class Fruitを具体化してください。
- 171 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:36:19 ]
- std::vector<Fruit*> fruits;
- 172 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 16:14:45 ]
- コンパイラにBCCを使って数値計算をしているのですが、
しばらくプログラム実行していると、EXP: OVERFLOW ERRORと出ます。 これは、exp関数に入れた値がexp関数の扱える値(doubleの範囲)よりも大きいと言うことでしょうか?
- 173 名前:デフォルトの名無しさん [2008/02/08(金) 16:23:52 ]
- >>167
俺、解決方法知ってるんだが…
- 174 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 16:25:09 ]
- vevtorにvcの_com_ptrは入りますか?
- 175 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 16:59:55 ]
- コピー初期化もコピー代入もできるから問題ないはず。
- 176 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:22:37 ]
- すいませんちょっとお聞きしたいんですが、
#include <iostream> using namespace std; int main(){ char ss[80] = "これは文字列です"; cout << ss[0] << ss[1]; return 0; } ってやって、coutで「こ」って表示されないのは、どういう理屈でしょうか??
- 177 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:24:09 ]
- UTF-8 なら3バイト必要だが、そういうわけではなくて?
- 178 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:34:20 ]
- >>176
ひょっとしてなんか変な文字がでたりしてるか?
- 179 名前:176 mailto:sage [2008/02/08(金) 22:34:23 ]
- ぐは、そうだったんですね・・2バイトでいいんだと思ってました汗
cout << ss[0] << ss[1] << ss[2]; とやったらちゃんと表示されました。 ありがとうございましたm(_ _)m
- 180 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:40:31 ]
- ちなみにWindows上だと>>176のコードで「こ」はちゃんと出た。(bcc32 / gcc@cygwin)
- 181 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:44:58 ]
- それはお前がソースをSJISで書いてるだけ
- 182 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:55:36 ]
- >>175
ども。
- 183 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:42:34 ]
- UTF-8 だと全て3バイトって訳じゃないのが面倒なところだよな。
- 184 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:43:11 ]
- >>181
UTF-16 でも出るがな。
- 185 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:17:28 ]
- 他で聞いてきます
- 186 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:20:35 ]
- fatal error LNK1104:コンパイラは、ファイルd3d9.libを開けません
とでてしまいビルドできません 手動でリンカにd3d9.libを設定しましたが無理でした どうすればよいのか
- 187 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:33:08 ]
- ファイルはあるの?
- 188 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:40:25 ]
- pathの設定はしたか?
- 189 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:58:17 ]
- More Exceptional C++が届いたんだが
いきなり最初のコードがコンパイルできねえ 一気にやる気失くした。やっぱ古い本はこんな もんかねえ。
- 190 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:00:08 ]
- ちなみにコレ
VC++2008 g++ 4.0 でも不可 #include <iostream> #include <fstream> using namespace std; int main(int argc, char* argv[]) { (argc > 2 ? ofstream(argv[2], ios::out | ios::binary) : cout) << (argc > 1 ? ifstream(argv[1], ios::in | ios::binary) : cin ) .rdbuf(); return 0; }
- 191 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:06:46 ]
- 全く問題ないけど。まさかとは思うが、>190って2バイト空白入れたままで悪態ついているお馬鹿さん?
- 192 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:15:25 ]
- コンパイルできないときはエラーメッセージを書こう
なんてのは宿題スレでも徹底されてるような気がする。
- 193 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:17:41 ]
- gcc 4 で通らないな。
まあ当たり前だな。 右辺値の ofstream と左辺値の ostream(cout) だと 片方が右辺値なので右辺値にキャストして型を揃えようとするが、 この2つじゃどうやっても型を揃えられない。
- 194 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:20:34 ]
- VC だと右辺値の ofstream を
テンポラリオブジェクトを作成して ofstream& にキャストしてしまえるから(拡張機能) コンパイル通るかもしれん。
- 195 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 04:37:38 ]
- たぶん、ここでしか聞けないのかなと思い書き込みさせてください!
File1.cppで定義・使用している複数配列 double a[10][5] を他の ファイル(File2.cpp)でも共有して使用したいときって (File2.cpp) void CGridDlg::OnGdraw() //中で使用したい関数です { extern double a[10][5]; ・・・・・・・・ } と定義すれば使用できるものなのでしょうか。単配列(a[10]等)の時は同様の 方法で使用できたのですが。複数配列になると上記ではリンクエラー (LNK2001)がでてしまいます。環境はVC6++(MFCダイヤログベース)です。 超初心者です。Cの本を見てポインタなり、externなりが関係しそうかなと思った のですが、なかなかいい兆しが見えなくて助けを借りたい次第です。
- 196 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 07:49:02 ]
- >>191
ここに見やすく貼るために全角にしてるんよ >>192 VC++2008でのエラーメッセージだがprivateメンバーにアクセスしようとしてる らしい。 error C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios' : private メンバ (クラス 'std::basic_ios<_Elem,_Traits>' で宣言されている) にアクセスで きません。 >>193 ostream(cout)の意味が分からないんですが。3項演算子 A ? B : C のBがrvalueでCがlvalueだからC(ここではcout)を右辺値にしようと するということかな? >>194 昔の規格なりコンパイラではOKだったのかもしれんです。
- 197 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 08:25:12 ]
- >>191
- 198 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 08:27:28 ]
- 空白orタブ <-> /**/
の置換スクリプトを希望
- 199 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 08:28:26 ]
- >>197
>昔の規格なりコンパイラではOKだったのかもしれんです。
- 200 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 08:55:15 ]
- >>196
左辺値の ostream の値である cout って意味ね。 エラーの理由はそれで問題ない。
- 201 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:50:51 ]
- >>195
externで共有させるのはお勧めしない。 他の関数で配列を参照させるためには、ポインタを渡せばよい。 関数内のローカル変数へのポインタは、その関数実行中にしか有効にならないから、一時的にしか参照・共有できない。
- 202 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:59:52 ]
- >>195
CGridDlg の private メンバ変数にして、 a の取得関数を用意すれ。 class CGridDlg { public: typedef double Hoge[5]; Hoge* GetA() { return m_a; } const Hoge* GetA() const { return m_a; } private: Hoge m_a[10]; }; Hoge* a = grid_dlg.GetA(); a[0][0] = 1;
- 203 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:37:35 ]
- 猫でもわかるを買ったんですが、
超初心者の俺にはさっぱりわかりません。 何かわかりやすい本などあったら教えてください。お願いします。
- 204 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:39:09 ]
- >>203
ちなみにC言語です。よろしくお願いします。
- 205 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:41:09 ]
- >>203
その本で分かりにくいとかじゃなくて さっぱり分からないというのであれば無理です、あきらめてください それより多少分かりやすいと評判のものもありますが、大差はありません それとも環境が用意できないとかそういうことですか?
- 206 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:54:33 ]
- >>203
その本は読んだ事はないが、サンプルをぽちぽち手で入力して実行してみなされ。 手で入力して試すのが肝心。 付属CDとかダウンロードをクリックして終わりじゃ絶対に理解できない。
- 207 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:26:37 ]
- >>200
なるほど。3項演算子は片方がrvalueのときは結果もrvalueになるという ことですね。 試したところでは、static_cast<ostream>(cout)やostream obj(cout); はできないみたいでが、そもそもostreamオブジェクトは生成できないも のなんですか?だとしたらostreamオブジェクトであるcoutはどのように 作成されたのですかね?
- 208 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:37:27 ]
- コピーしようとすると見るエラーだな
- 209 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:55:53 ]
- >>207
ostreamやistreamには、引数を取るコンストラクタがある。 coutやcinはそれを使って作られるんだろう。
- 210 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:04:36 ]
- >>207
static_cast<ostream&>(cout) とか ostream out(cout.rdbuf()); ならできる
- 211 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:06:27 ]
- >>209
>>210 ストリームとストリームバッファには弱い結合(ストリームバッファの同期) と強い結合(ストリームバッファの共有)ってのがあるみたいですね。 おそらく、コンソールデバイスに関連付けられたストリームバッファ (例えばcdevという名前だったとして)というのがシステムには存在し ていてcoutは、ostream cout(&cdev); というふうに定義されてる んでしょうね。ストリームオブジェクトをコピーできない理由は 無制限にストリームバッファをコピーしたり(メモリの浪費)、 暗黙のうちに共有できたりしたら問題が起こるからかなと思いました。
- 212 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:07:47 ]
- ストリームオブジェクトをコピーできない理由は
無制限にストリームバッファをコピーしたり(メモリの浪費)、 暗黙のうちに共有できたりしたら問題が起こるからかなと思いました。 は>>208さんへのレスでした。
- 213 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:24:28 ]
- coutをコピーするというのは意味がわからん、ってのもあるかもね
コンソール自体が2個に増えるわけじゃあるまいし
- 214 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:33:48 ]
- >>198
つかってやってください ttp://pc11.2ch.net/test/read.cgi/unix/997605845/55
- 215 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:41:15 ]
- >>205
環境が用意できないです。 それでもあきらめた方がいいですか?
- 216 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:49:08 ]
- >>203
そのままの意味が分からないけど、HDVも圧縮された素材ですよ。 H.264とは異なる方式で。 ttp://ja.wikipedia.org/wiki/HDV
- 217 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:52:43 ]
- あ、なんかすげー誤爆ってた。失礼orz
- 218 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:58:08 ]
- 環境が用意できないっつー意味がわからん。
Macしか持ってないのにWin32前提の入門書買っちゃったってことかね?
- 219 名前:203 mailto:sage [2008/02/09(土) 17:03:06 ]
- すいません。アフォで…
自分は今、第二章で止まってます。 と言うのも、いきなり「では、ソースを見てみましょう」となり、 「開発環境によってコンパイルの手順が異なります」 ↑この時点でわかりません。 自分には向いてないのかな…orz
- 220 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:05:32 ]
- void hoge(const char* name){ char* piyo = name + (sizeof(char) * 5); }
こんなようなことはなんで出来ないんでしょうか? 文字列nameの5文字目のポインタ(&(name[4]))をpiyoに格納したいです error C2440: '=' : 'const char *' から 'char *' に変換できません。 このようなエラーが出るのですが正直ここでなんでこのエラーがでるんだ?といった感じです
- 221 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:12:11 ]
- const char *piyo
- 222 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:13:49 ]
- >>220
書き換え可能なポインタ(char *)に書き換え不能なポインタ(const char *)を代入しようとしているからです。 void hoge(const char * name) { char const * piyo = & name[4]; } こう書けば問題ありません。
- 223 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:14:36 ]
- char *のconst性を除去してるから。入れたいならpiyoもconst char *にする。
hoge内で文字列を弄りたいなら引数をchar *にするべき。 引数は変えられず、どうしてもchar *が必要ならconst_cast<char *>(最後の手段)
- 224 名前:220 mailto:sage [2008/02/09(土) 17:17:20 ]
- >>221-223
ありがとうございます。 よく考えたらいじる必要はないのでpiyo側をconstにしました
- 225 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:18:01 ]
- >>219
とりあえず、なにか揮発環境は持っているのか?
- 226 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:18:34 ]
- > name + (sizeof(char) * 5)
彼は大丈夫だろうか。
- 227 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:19:23 ]
- >>225
はい。 ジクロルボスは揮発するので大丈夫です。
- 228 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:22:30 ]
- 俺のチームのメンバも先週揮発したぜ。
- 229 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:23:57 ]
- ちょっと待て、それは「蒸発」じゃないのか?
- 230 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:24:28 ]
- >>226
それって問題あるのか?パッと見わからん
- 231 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:26:23 ]
- >>230
char であるときには問題にはならないが int とかになると…
- 232 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:26:24 ]
- >>230
>220にはこう書いてある。 >文字列nameの5文字目のポインタ(&(name[4]))をpiyoに格納したいです
- 233 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:26:31 ]
- >>229
そうだな。揮発は性質で、蒸発は現象だからな。
- 234 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:27:47 ]
- >>231
いや、だいじょうぶだろw ちゃんとintの大きさに対応してくれるよw
- 235 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:27:55 ]
- >>230
ポインタは自動的にそのサイズ分進むから、sizeofを掛ける必要はない、とかかな?
- 236 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:28:25 ]
- >>234
ごめん間違えた
- 237 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:28:46 ]
- ConceptGCCで、190のコードのofstreamとifstreamを
ostream&&とifstream&&にstatic_castしたものを食わせたらどうなるかと試してみたが、 エラーだったorz。右辺値参照はライブラリまで及んでいなかった。
|

|