1 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 21:36:23 ] エスケープシーケンスやWin32APIなどの環境依存な物でもOK。 ただしその場合、質問者は必ず、環境を書きましょう。 ※sageは禁止です。 【前スレ】 【初心者歓迎】C/C++室 Ver.34【環境依存OK】 pc10.2ch.net/test/read.cgi/tech/1169039760/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
147 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 17:55:14 ] EXTERN_C
148 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 17:58:33 ] >>147 レスありがとうございます。 extern "C" をつけた関数の中から、C++固有の機能(クラスなど)へのアクセスが出来ないのですが… 具体的には、error LNK2019: 未解決の外部シンボル とエラーが出ます。
149 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:00:08 ] ヘルプ
150 名前:デフォルトの名無しさん [2007/02/25(日) 18:02:01 ] ユーザーが入力した日時 (日付と時刻) を 設定ファイルに記録しておこうと思うのですが、 どういう形式で記録するのが一般的ですか? asctime 関数のような 「Sun Feb 03 11:38:58 2002」 のような形式は 気持ち悪いので採用したくないです。
151 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:02:58 ] >>148 そりゃC言語にない機能だからクラスを扱えないよ。 C++の方で呼べるようにしてあげないと。
152 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:06:46 ] >>151 間違えたかも。 >>148 C++の方では Cから呼べるようにクラスじゃない関数でextern "C"を付けて作る。 Cの方では extern "C"を付けた宣言をする。 これで呼び出せると思うけど忘れた。
153 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:11:24 ] >>151 確認したいのですが、extern "C"をつけるのはC++側の関数へですよね? main.c #include "hogehoge.h" int main(void){ int a=0; func(a); return 0; } hogehoge.cpp #include <vector.h> extern "C" void func(int a){ vector<int> v; } hogehoge.h #ifdef __cplusplus extern "C" { #endif void func(int a); #ifdef __cplusplus } #endif こういう形なんですが・・・。
154 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:18:52 ] >>150 設定ファイルを直接見る必要が無いなら timeで拾った値をバイナリで書き込めばいいんじゃないかな。
155 名前:デフォルトの名無しさん [2007/02/25(日) 18:20:35 ] 設定ファイルはテキストファイルと決まってしまっているんです。 見ることはあまりないですけど、たまに見ることもあるものです。
156 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:25:04 ] >>150 W3C-DTF
157 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:30:34 ] >150 rfc 3339
158 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:33:33 ] >>153 これで動くんじゃないの?
159 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:38:48 ] おいらのところではコンパイル・リンクできたけど?
160 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 18:51:23 ] >>155 time_tの整数値 yyyymmddhhmmss形式 y/m/d h:m:s形式 好きにしな。
161 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 19:00:51 ] >>150 どういう形式にするにしても、strftime関数が使えると思う。
162 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 19:12:08 ] >>150 一般的といいつつも日本人向けにしたいっていうことだよね。
163 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 20:11:34 ] W3C とか RFC の形式を採用してみます。 情報ありがとうございます。
164 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 21:51:02 ] フォルダ内の全ファイルを列挙するプログラムを教えて下さい
165 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 21:53:35 ] system("dir");
166 名前:164 mailto:sage [2007/02/25(日) 22:04:00 ] printfで表示するには?
167 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:06:14 ] そういえば昔、 system("dir > hoge.txt")して、fopen("hoge.txt","r")...みたいなことを やってた連中が居た。
168 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:11:16 ] >>164 環境依存 >質問者は必ず、環境を書きましょう。
169 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:13:08 ] >>167 十分アリだと思う dir /b ほうがイイと思うが
170 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:15:15 ] popenの事たまには思い出してあげてください
171 名前:164 mailto:sage [2007/02/25(日) 22:16:58 ] VisualC/C++ WindowsXP フォルダ内のファイル名をstd::stringの配列に格納したいのです
172 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:32:34 ] >>171 FindFirstFile FindNextFile あたりでどうかな
173 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 22:56:24 ] イベント オブジェクトが現在シグナル状態にあるかどうかを調べるには、 どうしたらいい? WaitForSingleObject を使うの?
174 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:03:35 ] そう、待機時間を0にすればいいと思う。
175 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:08:32 ] そうか、ありがと。
176 名前:デフォルトの名無しさん [2007/02/25(日) 23:11:26 ] >>172 使い方がわかりません
177 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:20:03 ] >>176 #include<windows.h> #include<stdio.h> int func1(void){ HANDLE h_find; WIN32_FIND_DATA file_info; printf("\n----- func1 -----\n"); h_find=FindFirstFile("*", &file_info); if(h_find==NULL) return 0; do{ printf("%s\n", file_info.cFileName); }while(FindNextFile(h_find, &file_info)==TRUE); FindClose(h_find); return 1; } int func2(void){ FILE *fp; char filename[FILENAME_MAX]; printf("\n----- func2 -----\n"); fp=popen("dir /b", "r"); if(fp==NULL) return 0; while(fgets(filename, sizeof(filename), fp)!=NULL) printf("%s", filename); fclose(fp); return 1; } int main(void){ func1(); func2(); return 0; }
178 名前:デフォルトの名無しさん [2007/02/25(日) 23:21:25 ] 基本的なことで申し訳ないのですが、 クラスのオブジェクトの配列を作るとき、 そのクラスに引数を持つコンストラクタを持たせることは出来ないのですか? 一つ一つコンストラクタ引数を指定する形でも良いので、配列化させたいのですが… 一つ一つ宣言した上でポインタの配列を作った方が手っ取り早いですか?
179 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:33:21 ] 諦めてvectorに収納したら?
180 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:38:28 ] >>178 引数を持つコンストラクタを持たせることは可能だが、 クラスの配列の初期化時にはデフォルトコンストラクタが呼ばれるので デフォルトコンストラクタが必須。 どーしてもデフォルトコンストラクタを持たせたくないのなら、 (スマート)ポインタの配列にするしかないな。
181 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 23:40:35 ] 配置newとかを使ってやる方法は無くもないが、最後の手段。 現在のC++ではどうしようもないから179-180の言うとおりにするしかない。
182 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 00:07:26 ] >>179 vectorに収納…というのは、どのような使い方ですか? vector<MyClass> c1(10); のような使い方だとデフォルトコンストラクタしか呼べませんよね?
183 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 00:09:25 ] reserveしてからpush_back!push_back!push_back!
184 名前:デフォルトの名無しさん [2007/02/26(月) 00:19:57 ] >>177 ありがとう フォルダとかディレクトリまで表示されるけどファイルだけに するにはどうするの?
185 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 00:22:20 ] >>184 1. それぞれのファイル属性を調べる 2. dir のオプションを調べる
186 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 00:22:41 ] >>184 少しは自分で調べろ。
187 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 12:34:03 ] 彼にとって調べるとは人に聞くことだけなのさ
188 名前:デフォルトの名無しさん [2007/02/26(月) 12:52:25 ] Win32って無くなるの?
189 名前:デフォルトの名無しさん [2007/02/26(月) 13:19:14 ] たとえば Windows のファイル ハンドルをカプセル化したような クラスを作った場合、 class File { private: HANDLE m_handle; public: ..... HANDLE GetHandle(void) { reeturn m_handle; } operator HANDLE(void) { return m_handle; } }; この GetHandle や operator HANDLE は const 関数にすべき?
190 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 13:26:32 ] 微妙だな。 MFCのCWndや、ATL::CWindowではconst付けているけど。
191 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 19:36:57 ] とあるツールのソースがあるんですが、拡張子が.vcprojというファイルがあることから Visual C++ で作られたと言うことが想像できるんですが、具体的にVisual C++ のどのバージョン で作られているのかを知るためにはどうやって調べたらいいのでしょうか?僕の持っているVisual C++ ではコンパイルに失敗して困ってます。
192 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 19:41:06 ] .vcprojファイルをテキストエディタで開くと VC++のバージョンが書いてあります
193 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 19:46:26 ] >>192 だっは〜すいません、ありがとうございます!
194 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:51:36 ] たびたびすみません。。 >ProjectType="Visual C++" >Version="7.10" とあったのですが、これは .NETになるんですかね? Visual Studioの .NETを使うべきですかね、それともVisual Studio2005でしょうか
195 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:56:03 ] >>194 7.0は2002 7.1は2003 8.0は2005
196 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 20:57:33 ] >>195 どもです!!
197 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 21:04:54 ] >>194 2003を使うのが手っ取り早いですが、2005でも問題ないと思います。
198 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 22:13:12 ] VC++ で質問です。 class A {...} class B: public A {...} class C { B* b; vector <A> a; } こんな感じのクラスを作成してて C::a のうちの一つの参照から C::b へポインタをコピーした場合 C::b を B* として適切に扱えるのでしょうか?
199 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 22:16:23 ] B *b = &a[0]みたいなことなら、出来ないと思うが。 追加したメンバ変数・仮想関数がないというような 限定条件を付ければ、reinterpret_castしても動くだろうけどさ。
200 名前:198 [2007/02/26(月) 22:28:22 ] ありがとうございます。 上でやりたいことを少し説明します。 まず A が基本フレームと呼ばれるセクタ単位のデータ構造を扱います。 B は基本フレームを拡張したフレームで基本的には仮想ではない関数郡です。 そして C はフレーム集合を保持するクラスです。 C では C::a のうち頻繁に利用するフレームを C::b として利用できたらいいのにと考えています。 今手元に開発環境がないのですが 適切に扱える C::b1 もあったりできない C::b2 があったりして悩んでいます。 ポインタを使わないでよい用法があればよいのですがありますでしょうか。
201 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 22:28:30 ] >>198 aをstd::vector<boost::shared_ptr<B> >型にでもしておけ。
202 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:02:25 ] douga.adult-55.com/movie_141/flvplayer.swf
203 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:57:44 ] >>183 なるほど! ありがとう!!
204 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 09:41:55 ] >>200 vector<A*>にしてBにキャストしたい要素はちゃんとBのインスタンスを格納しとけば普通にダウンキャストできると思うんだが キャストしたくないというならクラス別に配列分けるか、クラスの設計見直すか
205 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 21:24:13 ] >>198 俺の想像だけどさ 某ライブラリで struct Box { int x0,y0,x1,y1; }; が既にあるとする。 値の配列でライブラリから受け取ったり渡したりするから Box型の配列のまま変えられない。 受け取ったり渡したりするだけならそのままでいいが 頻繁に使う要素は、やはり不便だ。 そこで struct BoxEx : Box { int GetWidht() { return x1-x0; } }; みたいに便利なメソッドつきの無理やりキャストしたいって事か。
206 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 21:30:58 ] 根本的ですが、 for(i = 0; i < 10; i++){ if(i < 5) a(); if(i < 7) b(); if(i < 9) c(); d(); } と、 for(i = 0; i < 5; i++) a(); for(i = 0; i < 7; i++) b(); for(i = 0; i < 9; i++) c(); for(i = 0; i < 10; i++) d(); ではどっちが効率的ですか?
207 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 21:38:01 ] なんとなく前者の方が効率よさそうな気がするが、 パフォーマンスに関してはとにかく実測(して比較)しろ。それが鉄則だ。
208 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 21:46:02 ] そもそもabcdを呼び出す順番が違ってくるけど、それでいいのか。
209 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 21:47:13 ] たぶん後者のほうが効率いいと思うが そんな効率気にする必要があるのか 「これじゃぁ効率悪いよなぁ」と余計なとこまで考えてプログラミングがなかなか進まないのは罠
210 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:02:03 ] ファイルの書き込みについて、なんですが 追加モードで開いて書き込むと、一番最後に追加されます。 ”先頭に追加した文字列を作ってから書き込む以外” 先頭に追加する方法はあるでしょうか? std::ofstream ofs( "hoge.txt", std::ios::app ); seekで先頭にファイルのポインタ先頭にしても 末尾に追加されるみたいなんです。 よろしくお願いします。
211 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:06:05 ] 日本語の実装に難があるような気もするが、 要するに、ファイルの先頭行が最新の書き込みであってほしい、という話?
212 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:26:29 ] >>210 先頭に追加?OSレベルでもそういう機能をファイルシステムに 備えている物はないんじゃないか?
213 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:35:09 ] >>210 追加だから最後に追加されるのが正しいでしょ。 先頭に書いたら上書きじゃないのか。 それとも先頭に挿入? メモリでもファイルでも挿入というのは、 それ以降の全てのデータをずらして書き込み場所を空けてから 書き込むのでちょっと大変なサギョウだ。
214 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:50:12 ] 行の先頭4バイトを次(ファイルオフセットには前)の行へのオフセットと決めておいて、 ファイルの先頭だけ特別扱いすれば・・・誰かそんな変態FS作らないかな。
215 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 23:01:51 ] >>207-209 確かに… 実測すべきでした。ハイ。 済みませんでした。 やってみます。
216 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 23:15:00 ] >>212 >>213 はい。やりたいことは挿入です。 挿入みたいなモードは無いですか。 ログの保存を先頭に挿入して、逆の順番に保存してる アプリがあったので、どうしてるのかと思いまして。 レスありがとうございました。
217 名前:198 [2007/02/27(火) 23:21:41 ] >>205 ありがとうございます。 でもちと違うのかな。 198 の vector <A> a; を vector <A*> a; として b = a.at (x); とすることでやりたいことができました。
218 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 23:26:58 ] え?キャスト無かったら、こういうエラーにならない? > error C2440: '初期化中' : 'A *' から 'B *' に変換できません。 > base から derived へのキャストには、dynamic_cast または static_cast が必要です。
219 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 23:29:45 ] >>216 そのログのフォーマットはどんなかんじでしょうか? タグ(目印)みたいなものがついてないでしょうか? ログのフォーマットがわかればそのアプリがどんな 実装してるかわかるかもしれんよ
220 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 08:10:06 ] 配列の中身をランダムに入れ替えて別の配列に代入したいのですが、 被らず代入する方法を教えてください。お願いします。
221 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 08:21:50 ] >>220 手順 要素数を N とするとき 1. そっくりそのまま別の配列にコピーする 2. 配列の 1 番目の要素と x1 番目の要素を交換する (x1 は 1 から N までの一様乱数で求める) 3. 配列の 2 番目の要素と x2 番目の要素を交換する ... 配列の N 番目の要素と xN 番目の要素を交換する
222 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 08:22:47 ] そのままコピーした後、ランダムに並び替えるのが楽なんじゃないかな
223 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 08:29:55 ] >>221-222 ありがとうございます。 なるほど、入れ替えた回数が「ランダム」ということになりますね
224 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 08:33:56 ] >>223 違う rand() の精度で良ければサンプルはこんな感じ N 回の入れ替えで全体の順序がランダムになる #include<stdio.h> #include<stdlib.h> #define N 10 void swap(int *a, int *b){ int c; c=*a; *a=*b; *b=c; } int main(void){ int a[N], b[N]; int i; for(i=0;i<N;i++) a[i]=i+1; for(i=0;i<N;i++) b[i]=a[i]; for(i=0;i<N;i++) swap(&b[i], &b[rand()%N]); for(i=0;i<N;i++) printf(" %d", b[i]); printf("\n"); return 0; }
225 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 16:53:00 ] 剰余かよ
226 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:27:59 ] int b[1024]; に様々な+-含めた値が入ってて、そいつをfloat型として無理に渡した関数先で +- 32768.0の範囲に収まるfloat型にきちんと直したいんですけど 具体的には void func(float *b){ int o[1024]; for(int i=0; i<1024;i++){ o[i]=b[i]*(1.0 /32768.0); } } int main(void){ func(b); } } こんな感じにしたいんです。 func()の引数がfloatではなくintであれば、この計算で正常に変換出来るんですが どうしてもfloatで渡す必要があって困っています。 func内でint型の変数を用意してコピーしてやると上手くいきますが、ループ内の計算式で何とかしたいのです。 どうすれば上手くいくのでしょうか?
227 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 19:58:37 ] すみません。間違えました。。。 void func(float *b){ float o[1024]; for(int i=0; i<1024;i++){ o[i]=b[i]*(1.0 /32768.0); } } です。結果はfloatで出したいのです。
228 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 20:19:57 ] ようするにint to floatって事?
229 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 22:57:53 ] >>227 どうしたいのかよく和下欄のだが、 それだと、bの中身とoの中身が全然変わっちまうぞ。
230 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:07:59 ] すみません。 >>228 のとおり、ようするに正しくfloatからintへ変換したいのです。 例えば int f=-2 printf("%f\n",f); これで正しく-2が表示出来るようにしたいのです。 この場合fに何か計算式をかければいけそうだとは思うんですが…。
231 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:10:12 ] 浮動小数点数には表現できない数値のいうのがあってだな
232 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:15:17 ] >>230 その前の話を全て無視して、単にそのprintfの場合だったら、 可変個引数だからキャスト演算子を明示しろということになるが。 printf("%f\n", (float)f);
233 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:17:30 ] >>230 まて落ち着け。 前の文を見る限りそんな単純な問題でもなさそうだが… その話なら単純にキャストだ。 とりあえず落ち着けw
234 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:26:40 ] なんか質問が似てるんだけど GPGPU pc11.2ch.net/test/read.cgi/tech/1128780920/377 とは別の人?
235 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:33:32 ] void func(float *t){ for(int i=0; i<128;i++) printf("%f\n",t[i]); } int main(void){ int t[128]; for(int i=0; i<128; i++){ t[i]=i; } func((float *)t); return 0; } これで0〜128が表現できねぇよって話か? GPUの事はわからんから、intやfloatのサイズの事はわからんからアドバイスは出来ない。
236 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:45:10 ] >>235 そうです!それです! GPUじゃなくて、CPUでのやり方が知りたいんです。
237 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:51:42 ] C なら int f; *(float*)&f = -2; printf("%f\n", *(float*)&f); C++ なら int f; (float&)f = -2; printf("%f\n", (float&)f);
238 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:52:41 ] C++ タイプのキャストを使うなら int f; reinterpret_cast<float&>(f) = -2; printf("%f\n", reinterpret_cast<float&>(f)); だな。
239 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:07:25 ] C++の機能を使わないで済むならC++の機能は使わない方がよい。
240 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:16:39 ] Cの機能を使わないで済むならCの機能は使わない方がよい。 アセンブラの機能を使わないで済むならアセンブラの機能は使わない方がよい。
241 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:16:40 ] int to short *pt>> (8 * sizeof(int) - 16) int to floart *p<< (8 * sizeof(int) - 32)
242 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:21:29 ] >>241 質問者はint型の変数をfloatの引数を持った関数に渡して 関数内でfloatからintに戻すって話だろ
243 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:42:08 ] >>237 それってsizeof(int) < sizeof(float)のときにメモリ破壊しね?
244 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 02:17:41 ] 関数の引数にすると、キャストしても無駄だよ。 だから>>235 の例は上手くいかない。
245 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 07:03:14 ] そもそもサイズの違うかもしれないものにキャストしちゃいかんだろ
246 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 07:35:14 ] 環境はC++builderです。 CreatThreadを使用したマルチスレッドのアプリケーションを ウィンドウの右上の×ボタンを、押して終了させたとき、 リソースとか全部開放されるのでしょうか?
247 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 10:00:08 ] >>246 動的に確保したリソースは自分で開放