- 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
- 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
動的に確保したリソースは自分で開放
- 248 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 10:44:51 ]
- >>247
はやいお返事、どうもありがとうございます。
- 249 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 14:52:28 ]
- >>245
このスレは環境依存 OK なはずなんだが
- 250 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 16:26:53 ]
- 環境書いてないね
- 251 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 16:30:37 ]
- そうだね、ぬるぽだね
- 252 名前:デフォルトの名無しさん [2007/03/01(木) 17:30:33 ]
- C++てどこでDLするの
- 253 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 17:33:23 ]
- >>252
C++の何がほしいんだ?
- 254 名前:デフォルトの名無しさん [2007/03/01(木) 17:42:23 ]
- 統合環境なら何でも
- 255 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 18:12:16 ]
- そんなの探す前にコミュニケーション能力あげる方が先だな
- 256 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 18:44:22 ]
- >>254
Microsoft Visual C++ 2005 Express Edition
- 257 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 19:08:40 ]
- >>246
窓っ子として注釈しておくと、 プロセス(タスクマネージャで見れるプログラムの単位)が終了した段階で すべてのリソースはキレイに開放される 窓を[×]で閉じる=プロセスの終了ならそれで問題ない だからスレッドの終了やCloseWindowだけとかなら駄目だし、 精神論で言って理想的なのはもちろん>>247
- 258 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 23:03:49 ]
- >>257
詳細に、どうもありがとうございます。 理解できました。
- 259 名前:デフォルトの名無しさん [2007/03/02(金) 23:16:03 ]
- vector<T>を使って、Win32のアプリでクラスの配列を扱いたいんだが、
配列をグローバルに扱う方法がわかりません… コントロールのハンドル等を扱うクラスなので、 初期化をウィンドウプロシージャ内で行いたいのですが、 どのようにすればいいのでしょうか。
- 260 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:19:01 ]
- push_back、push_back
- 261 名前:259 [2007/03/02(金) 23:29:03 ]
- ごめんなさい、push_back使うのはわかるのですが、
最初どこでどのように最初のメモリの確保を行えばよいのでしょうか。
- 262 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:33:14 ]
- ヘッダで以下のように
typedef vector<T> vT; extern vT *pvT; どっかのcファイルで static vT *pvT; 最初のメモリ確保は、WM_CREATEとかでnewしておけば良い。
- 263 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:37:04 ]
- >>259
えーと、あるウィンドウに属するコントロールの配列を管理するんだろ? 何で「グローバル」である必要があるんだ?
- 264 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:42:22 ]
- グローバル空間に
vector<T> v; でいいんじゃないの?
- 265 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:42:26 ]
- >>262
なぜポインタにする必要がある?
- 266 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:44:13 ]
- >>262
staticな変数をexternしてもリンクエラーが出るだけな気が。
- 267 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 00:20:41 ]
- >>259
int型の変数だろうとvector<T>型の変数だろうと グローバル変数の使い方は同じじゃね?
- 268 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 00:24:21 ]
- >>267
static配列は int a[] = { 0, 1, .. }; のような配列初期化構文が使えるが、vector<T>では使えないという 違いがあるな。 vector<T>をstaticに初期化したいならば int a[] = { 0, 1, .. }: vector<int> v(&a[0], &a[N]); のように書くしかないが、メモリの無駄だな。 が、今回のケースでは初期化はWinProc内で行いたいそうだから どうでもいいんだな。
- 269 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 00:25:57 ]
- コントロールを動的に生成/消滅させるウィンドウでないのなら
単なる配列でいいんじゃないの? 要素数が固定なら、vector<>はオーバースペック。
- 270 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 08:45:11 ]
- >>268
仮にvector<int> v = {0, 1, ...};のような初期化ができるようになっとしても、 コンストラクタの呼出まで初期化子を静的に用意しておくことになるだろうから、 その実装はおそらくこう書くのと同じようになると思う。 int a[] = {0, 1, ...}: vector<int> v(&a[0], &a[N]);
- 271 名前:デフォルトの名無しさん [2007/03/04(日) 00:41:25 ]
- 質問させてください。
C++によるオブジェクト間のメッセージ通信についてなんですが、 オブジェクトAがオブジェクトBを含有する構造の場合、 AからBへのメッセージ送信は、AがBのメソッドを呼び出すという形でOKですが、 BからAへのメッセージ送信はどう実装するのがベターなんでしょうか? 1.AからBのメソッドを呼び出し、戻り値をメッセージとして扱う、(BはAに処理させたい内容を戻り値で返す) 2.BにAの参照を渡しておいて、BからAのメソッドを呼び出す、 3.各オブジェクトにメッセージプロシージャを用意して、そこにメッセージを投げる、(ウィンドウメッセージのように) あたりは試してみているんですが、どうにもソースがスパゲッティになりがちで悩んでいます。 現在は、オブジェクトへのアクセス手段を統一でき、尚且つ不要なメッセージを無視することが可能な「3」を用いて実装しているのですが・・・ 何か他にいい手法はないでしょうか?
- 272 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:02:31 ]
- >>271
相互依存するぐらいなら同じクラスにしちゃえばいいのに。 それでおかしくなるようなら A, B のどちらか(または両方)が大きすぎるんじゃないの?
- 273 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:25:41 ]
- >>271
デリゲートな悩みですか
- 274 名前:デフォルトの名無しさん [2007/03/04(日) 01:35:33 ]
- 実装というか、コーディングマナーの質問です。
配列の並び順を変更するときに、テンポラリ変数としてヒープ領域を使うのはありでしょうか。
- 275 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:37:36 ]
- 必要ないのにヒープ領域は使わないかな
うっかりミスでリークしたりしたらあれだし
- 276 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:40:47 ]
- >>271
ケースバイケースだなぁ。 オブジェクト間のコミュニケーションが複雑化しすぎると感じるなら、 Mediatorパターンなんてのもあるよ。 ウィンドウメッセージは直接的なC++のメンバ関数呼び出しより はるかに非効率だけれども、 非同期にできたり、相手が死んでいた場合のdangling pointer問題を 回避できたりという利点はある。
- 277 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:42:18 ]
- >>274
ヒープ使ってstd::auto_ptr<>に突っ込む分には>>275の言うような 問題はないが、 速度の問題だけで言えばalloca()の方が速い。移植性が劣るし スタックサイズの制限にひっかかるかもしれないが。
- 278 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:54:53 ]
- >>272
元は全部1つのクラスで処理をしていたんですが、 行数が多すぎて分かり辛くなってきたため、分割しようとしたところ、相互依存の問題が出てきた感じです。 >>273,276 色々ありがとうございます。 デリゲート、Mediatorパターン、ちょっと調べてみます。 ゲームプログラムで、非同期処理なので、その辺ももう少し考えてみます。
- 279 名前:デフォルトの名無しさん [2007/03/04(日) 07:12:04 ]
- 今後WIN32は消える?
- 280 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 07:26:12 ]
- >>279
100年後とかには生き残ってないだろな。
- 281 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 10:23:01 ]
- >>277
allocaをMSのライブラリは拒否している(昔は使っていたが)。 デフォルトで配列を使ってサイズオーバーしたら ヒープを使うという戦略になっている 当然allocaより速い
- 282 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 11:16:36 ]
- どうして適当なこと言う奴が後を絶たないのか
- 283 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 11:31:09 ]
- いい加減な事を発言した奴には罰金を科せばいい。
- 284 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 15:13:11 ]
- 国会でやると大もうけだな
- 285 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 18:32:04 ]
- レスが付かないのでこちらにきました
Visual Studio2005 C++で SystemParametersInfo(SPI_SETDESKWALLPAPER, NULL, "c:\\a.bmp" ,0 ); しても壁紙が変更しません 解る方、教えてください
- 286 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 20:14:00 ]
- 人が居なくても、ちゃんと元スレには「あちらで訊いてみます」って書いたか?
- 287 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 00:14:35 ]
- >>285
最後の引数に SPIF_UPDATEINIFILE|SPIF_SENDWININICHANGE しとけ
- 288 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 04:34:28 ]
- 環境は、C++builderです。
void __fastcall TForm1::Button1Click(TObject *Sender){ //処理 } 他の関数で、ボタンを押した動作をしたいときは、 どのようにすればよいでしょうか。
- 289 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 10:29:58 ]
- TButton::Click()
- 290 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 14:06:31 ]
- >>289
ありがとうございます。
- 291 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 21:30:09 ]
- >>287
レスどうもです SystemParametersInfo(SPI_SETDESKWALLPAPER, NULL, "c:\\a.bmp" ,SPIF_UPDATEINIFILE|SPIF_SENDWININICHANGE ); ってしたんですが、だめでした 他にあればお願いします
- 292 名前:デフォルトの名無しさん [2007/03/07(水) 02:58:25 ]
- C++
WinAPIをまとめてあるフレームワークライブラリを解析していたんですが ///// hoge.h //// class hoge{ hoge(); } extern hoge* phoge; ///// hoge.cpp //// hoge* phoge; hoge::hoge(){ phoge = this; } 上のような(簡略化してあります)記述がありました。 コンストラクタ内でthisポインタでインスタンスのアドレスを 取得していると思うのですが、このインスタンスが実際に何処にあるのかが、分かりません。 他のファイルも調べてみましたが上の場所でしか、phogeにアドレスが代入されていませんでした。 環境はVisualC++2005です。
- 293 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 03:04:16 ]
- hogeのインスタンスがどこにも無いならコンストラクタも走らず、
したがって、phogeは常にNULLのはず。 とおもったが、phogeの代入箇所?さがすのはhogeのインスタンス化位置でそ?
- 294 名前:デフォルトの名無しさん [2007/03/07(水) 03:38:54 ]
- hogeのインスタンス化のいちも探してみましたが、見つかりませんでした。
さっき気がついたのですがウィンドウの作成時にWNDCLASSではなくCREATESTRUCTが つかわれていました。これが何か関係あるのでしょうか? 以下のように、この構造体のhInstanceに先ほどのhogeのインスタンスがわたされていました。 cs.hInstance = *app;
- 295 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 07:08:45 ]
- >>292
ソースがあるならそこにブレークポインタでとめて ステップ実行で周辺を探すって手もある。 上手く行くか知らん。 hoge派生クラスがあるとか。 んなわけないか。
- 296 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 07:30:28 ]
- 生成された時の自分自信のポインタをいれてるだけじゃん?
- 297 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 07:36:58 ]
- 生成されているのは事実だが
何処で生成しているか判らないから聞いている質問だと思うが? ブレークポイントを置いてこのときはまだ生成されていないとかから すこしずつ絞り込んで行くとか。
- 298 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 07:41:43 ]
- extern 宣言してあるんだからコンパイル開始時に生成されると思うんだけど
- 299 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 07:43:12 ]
- あ、コンパイル開始というかプログラム開始時に
- 300 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 08:58:45 ]
- 「class hoge を継承したクラスのインスタンスを1個は作れ。 作るタイミングはおまえさん次第」
で、どこかで作られたであろう インスタンス をポインタで保持して、 いつでも呼び出せるようにしている と。 # MFC の CWinApp じゃね?
- 301 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:00:01 ]
- グローバルで作ったのなら スタートアップルーチン内 でインスタンス化してる
- 302 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:30:18 ]
- DLLを作成したいのですが、
フリーソフトによる開発環境では不可能なのでしょうか? Visual C++では出来なかった物で…。
- 303 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:45:38 ]
- できるよ
VCのスレ…いや、画像付きの解説ページがあったはずだから、ぐぐった方が良いな
- 304 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:50:37 ]
- >>303
ExpressバージョンではMFS、ATLが含まれていないので作成出来ないと思っていました。 有難うございます、もう少しぐぐってみます。
- 305 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 10:43:30 ]
- MFCもATLもなくたってDLLは作れる。
プロジェクト作るときにどこかでDLLを選ぶだけ。
- 306 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 11:29:49 ]
- >>291
つ GetLastError()
- 307 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 16:27:32 ]
- 質問です。
クラスの「constメンバ関数」は、メンバー変数の書き換えを禁止しますよね。 これによって「その関数は何度呼び出しても問題ないはずだな」 と思って分担作業をしていました。 ところがconstメンバ関数の中から、グローバル空間の変数を書き換えている奴がいたのです。 いままで知らなかったのですが、constメンバ関数はグローバル空間の変数などを書き換えてもコンパイルエラーにならないのですね。 この行為を禁じるための、C++文法的な書き方はありませんでしょうか。 「グローバル変数使うの禁止!」といっても使う奴が稀にでてきてコマっています。
- 308 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 16:31:38 ]
- ありません。
- 309 名前:デフォルトの名無しさん [2007/03/07(水) 16:43:50 ]
- 質問です。
ヘッダーファイルで private: int (*ptr)[10]; int x[10][10]; と宣言しています。ちゃんと機能しています。 それでデコンストラクターでメモリの解放をしたいんですけど delete [][] x; ではコンパイルが通りません。 delete [] x; では Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse) と出てRun-Time Errorになってしまいました。 どうやって解放するんでしょうか?教えてください。 環境はVC++2005 Express Editionです。
- 310 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 16:49:12 ]
- >>309
newしてないんだからdeleteする必要はない。
- 311 名前:309 mailto:sage [2007/03/07(水) 16:53:34 ]
- >>310
あア、ナルほど! newとdeleteはセットなんですね。 ご親切にどうもありがとうございました!
- 312 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:02:02 ]
- あと、デコンストラクタじゃなくて、デストラクタな。
俺も昔勘違いしてた。
- 313 名前:デフォルトの名無しさん [2007/03/07(水) 17:40:36 ]
- if(aaa>=1 && aaa<=10)
のように if(aaa>='1' && aaa<='10') これも文字だけでできますか?わざわざ数字に変換しなくてもいいですか?
- 314 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:43:27 ]
- わざわざ数字に変換しないとだめです
- 315 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:43:51 ]
- '10'
- 316 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:45:25 ]
- '10'は規格上は通るけど、恐らくあなたの期待した値にはならないでしょう。
- 317 名前:デフォルトの名無しさん [2007/03/07(水) 17:47:25 ]
- '9'までしか無理ということですか?
- 318 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:49:53 ]
- 文字定数でぐぐれ
- 319 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:54:32 ]
- そもそもaaaの型は何だよ。何が入っているんだ
- 320 名前:デフォルトの名無しさん [2007/03/07(水) 18:00:41 ]
- リテラルにあった型です
|

|