1 名前:デフォルトの名無しさん [2007/10/28(日) 16:27:04 ] 質問する前にLive Searchで検索しましょう。www.live.com/ プログラミングと関係ない質問はそれぞれの板の質問スレへ。 前スレスレ立てるまでもない質問はここで 85匹目 pc11.2ch.net/test/read.cgi/tech/1189527878/ _,rr-―''''¨゙゙゙ ̄ ̄ ̄ ̄ ̄`゙゙゙゙゙゙゙゙''ヘi、、 ,,,,-―---、 ,r‐'″ ._,,,, `'lri,!'''″ ゙l .,,,″ ,,r'"` ゙゙l, ゙ヘ, | !アr, .l°.ェ'ニ,コ .| ゚ヘ、 | `'i、 .く_,、vr''″ ., ゙'i、 .,,/ ゙X、 ト ゙!,゛ .,,r‐--、 ,、_,、 .,,,,r‐'″ | } .,,r‐'^’ .|゜ め゙゚“゙゙~゛ |  ̄` .,l゙ | ,i´ ,l゙ ゙!、 ,i´ ,ノ .'┐ ,,-° '=,, /` .゚!, ,,,,r'″ ゙┐ ,l゙ ゚'r, .''''"` │ .,,-''i、 / `''x, .| | .,,r'" .゙┐ ,i´ ~'ヘi,,, | |_,r・″ 'ヘ,、 l゙ `¬--|i,,,,,,,,,,,,,,,,v、r',广 ゙ヘ=@ ,l゙ `゙'ーぃ--r'″ `'―、,,,,/
271 名前:デフォルトの名無しさん [2007/11/07(水) 17:17:31 ] 補足: #pragma once はついています。
272 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 17:19:08 ] >>270 ; が大分落ちていて気になるんだけど、ちゃんと付くべきところに付いてるのね?
273 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 17:20:36 ] class B b*;も気になる。
274 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 17:24:38 ] まともな疑似乱数なら、どういう規則で生成してるのか予め知っているか、 有名なアルゴリズムの特徴との一致を見るか、あてずっぽうでやってみて 当たるかどうか、ぐらいしか手はない。 生成規則がわかっている場合、乱数生成器の内部状態が、出力そのもので 更新されていると、seedが不明でも一定の必要量の出力の観察から、 その後の出力は予測可能。これを防ぐためにハッシュ関数を使うわけだが、 このへんの暗号がらみの宿題を丸投げしてないか?
275 名前:270 [2007/11/07(水) 17:27:39 ] えっと、基本的なところは押さえてます。 抽象化(?)する際にミスっているだけだと思います。 一応、構文的なことでコンパイルエラーは出ていません。
276 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 17:29:19 ] むしろギャンブルの予想ソフトを作ろうとしているとエスパー。
277 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 17:37:07 ] >>275 何がしたいのかイマイチわからん。 include "a.h" とかいう落ちではないよね? あるいは class A; → class A{}; とか。
278 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 17:39:59 ] >>275 エラーが出たのは何行目だよ >「定義されていない基本クラスが宣言されています」 ってのは構文上のエラーだよ
279 名前:270 [2007/11/07(水) 17:42:12 ] すみませんでした、 一応、コードを乗せます。 #ifndef SYMBOL_H #define SYMBOL_H #include <string> #include <map> #include <iostream> using std::string; using std::map; using std::iostream; #include "Code.h" class CCode; class CSymbol : public CCode { private: map<string, CSymbol*> m_map; string m_name; public: CSymbol(string s); ~CSymbol(void); CCode run(void); string toString(void); static CSymbol intern(string s); }; #endif
280 名前:デフォルトの名無しさん [2007/11/07(水) 17:42:54 ] #ifndef CODE_H #define CODE_H #include <list> #include <iostream> using std::list; using std::iostream; #include "Symbol.h" class CSymbol; class CCode { public: CCode(void); ~CCode(void); CCode run(); CCode add(CCode code); CCode sub(CCode code); CCode multiply(CCode code); CCode devide(CCode code); CCode less(CCode c2); CCode greater(CCode c2); CCode le(CCode c2); CCode ge(CCode c2); CCode and(CCode c2); CCode or(CCode c2); CCode message(CSymbol symbol); CCode message(CSymbol symbol, list<CCode> list); void assign(CSymbol symbol, CCode c2); }; #endif
281 名前:270 [2007/11/07(水) 17:44:04 ] エラーが出たのは、 class CSymbol : public CCode { private: ↑の中括弧の部分です。 継承元の CCode が見つからないということだと思います。
282 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 17:48:44 ] すみません、画像変換プログラムについてですが BMPファイルのピクセルごとのRGBの値をテキストファイルで出力させるプログラムってありますでしょうか? ファイルの構成やらといった解説は見つかるのですが・・・
283 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 17:55:42 ] もうちょっと探せば出てくる気もするけど。 見つけられないなら、 PGM って画像形式の ASCII モードは、画素値をテキスト形式で保存するんで PGM はけるソフトでも探せば願いがかなうかと。
284 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 17:57:33 ] class CSymbol : public CCode を記述するヘッダファイルには #include "Code.h" が必要。 hogemethod(CSymbol symbol); を記述するヘッダファイル側にも #include "Symbol.h" が必要。 親クラスが子クラスを知るような設計にするからこうなる。 どうしてもやりたいのなら、 hogemethod(CSymbol *symbol); とするようにすればヘッダファイルには、 class CSymbol; を書いておくだけでよい。んで、実装する*.cppファイルで #include "Symbol.h" を書く。 ヘッダファイル同士の依存関係について、 調べてみるとよいかも。 前方参照(?) (class CSymbol;など) を使って抽象的にヘッダファイルを書いておき、 詳細な定義は*.cppの実装でこそincludeする。 …って感じだっけ?
285 名前:270 mailto:sage [2007/11/07(水) 18:09:29 ] >>284 >どうしてもやりたいのなら、 >hogemethod(CSymbol *symbol); >とするようにすればヘッダファイルには、 >class CSymbol; >を書いておくだけでよい。んで、実装する*.cppファイルで >#include "Symbol.h" >を書く。 の部分がちょっと分かりませんでしたが、 >親クラスが子クラスを知るような設計にするからこうなる。 という点に関して、 この設計は、元はある書籍に載っていたものなので、 設計のスタイルとしては半信半疑ながら問題ないものだと考えていました。 ですが、こうして他の方からも指摘を頂いたことで、それが誤っていたことを理解しました。
286 名前:270 [2007/11/07(水) 18:13:18 ] 書き途中でパソコンが落ちました。 つづき↓ なので、ちゃんと設計からやり直すことにします。 どうもありがとうございました。
287 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 18:21:33 ] ヘッダファイルの中にポインタとして出てくるだけなら、 そのクラスの定義は不要なのよ、ひとまず。 例:変数として使うから、定義が必要なケース #include "hoge.h" class A { Hoge h; } 例:継承元だから、定義が必要なケース #include "hoge.h" class A : public Hoge {} 例:ポインタとするので充分だから、定義が不要なケース。 class Hoge; class A { Hoge *h; } これの何が嬉しいかっていうと、 ヘッダファイルが相互に依存しちゃったりするのを避けれるし、 そうでなくてもひたすら参照し合うような状況を避けれる。 そういうのがどこまで嬉しいかは個人次第だろうけど、 今は俺はそうやって、ヘッダは小さく(?)、 実装で色々includeするようにしてます。 …ま、ここらへんのことはもっと良く分かっている人がコメントしてくれるはず。 俺これ、微妙に間違ったこと言ってる可能性も高いし。
288 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 18:25:35 ] すいません、「PGMはけるソフト」ってどこで区切るんでしょう・・・ PGMって画像形式はわかりましたけれど・・
289 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 18:30:29 ] PGMは 蹴るソフト
290 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 18:32:31 ] >>289 きっとルソルトさんにPGMはけを要求してるんだよ
291 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 18:45:57 ] PGM掃けるソフト
292 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 18:47:04 ] まじれすると-吐ける-
293 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 19:17:50 ] お騒がせしました。 どうやら、BMP←→PGMの変換ソフトは無いみたいですので、間にPPMを挟んで変換します。 思ったよりもPPMとかPGMやらといったUNIX用の画像ファイル(ですよね?)は、構成が簡単っぽいので がんがって解析します。 用途は画像解析でした。レーザー顕微鏡で撮った画像(濃淡で高さを表現 正確には焦点位置での光の反射)をBMPで保存して それを数値的に解析したかったのです。
294 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 19:39:34 ] susie とかあるだろうに。PGM で保存できるソフト。 てか、レーザー顕微鏡で取った画像をそもそも BMP 以外で保存できたりはしないのかな。 あと、PGM 化しなくても、BMP 読むライブラリくらいネット探せばすぐ見つかりそうな気が。
295 名前:229=235 mailto:sage [2007/11/07(水) 20:02:27 ] >>236 さん >>238 さん >>240 さん >>241 さん >>242 さん >>243 さん >>244 さん >>245 さん マジレスありがとうございますm(__)m 少し光が見えた気がします。 (他にもマジレスしてくださった方がいたらありがとうございます) とても参考になりました。 >>230 さん 禿げバンク、ゲームでぐぐってみたら、いろいろと役立つっぽい情報が でてきました。>>230 さんはツンデレだったんですね。 みなさんのような優しいお兄さんが主人公を助けてくれるような かわいいゲームを作りたいです。 ありがとうございました。
296 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 20:07:54 ] ツンデレもなにも禿の会社が嫌いなのであってお前なんかどうでもいいのだが
297 名前:237 mailto:sage [2007/11/07(水) 21:21:51 ] 折角マジレスしているのに悲しいなぁw 女には用はないらしいから仕方ないけど。
298 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:33:06 ] >>293 この板で聞いているということはプログラム書く気あるということだと仮定すると、 ImageMagick とか便利だよ。C++ 使えれば Magick++。 画像フォーマットの変換、解析とかは小手先調べレベル。
299 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 22:07:45 ] >>297 ハゲタカのように買収工作しかけてくるから そう言われてるのかと思ってたんだけどそう いう意味合いもあったのね…全然知らなんだ
300 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 22:11:24 ] 禿げバンド = ハゲタカロックバンドの省略形
301 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 22:14:55 ] ウゼェ
302 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 22:31:13 ] > みなさんのような優しいお兄さん かわいい妹のような人もいるかもしれないのに
303 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 22:47:20 ] 上のほうで画像云々言ってた者です。 やっと見つけました。bmpからpgmへ直接変換出来るソフト、しかもソース付き。 画像を扱うプログラムなんぞ作った事無かったので、勉強になります。 アドバイスありがとうございました。
304 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 23:41:47 ] 質問です Cで構造体を使いたいのですが 中で配列を使うときに struct e{ int value[]; int value2[]; int value3[]; }; とするとエラーが出てしまいます。 配列の大きさが可変なので、使うときに配列の要素数を決めたいのですが そういうことはできるでしょうか
305 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 23:43:42 ] いいえ
306 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 23:44:33 ] int *value; 使っとけ
307 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 00:26:28 ] struct e{ int *value; int *value2; int *value3; }; として、必要な要素数分をmallocで確保する
308 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 00:31:08 ] なるほどー なんかポインタって、アドレス云々よりも malloc→配列として使う、っていうのが多いですね
309 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 00:37:53 ] >>308 structure へのポインタもよく使うよ。
310 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 00:45:22 ] >>309 ちょうどそのことも伺いたく たとえば 構造体eを e temp[256]として、中の要素数も256取りたい場合 e temp[256] for(int i=0;i<256;i++) temp[i].value=malloc(sizeof(int)*256); という風にループで初期化させていくのでしょうか? それと、structureへのポインタとは struct e p; p = (struct e*)malloc(256 * sizeof(struct e)); という感じでしょうか?
311 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 00:53:54 ] struct e *p;
312 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 01:04:08 ] すみません、*が抜けていました。 *pで構造体を確保して、配列を初期化しようとしたら valueの初期化がなぜかできないです。。。 'void *' から 'int *' に変換することはできません。 と出てしまいます。
313 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 01:09:04 ] temp[i].value=(int *)malloc(sizeof(int)*256) void * から任意のポインタへの変換ってダメだっけ? ++ じゃダメなんだっけか?
314 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 01:23:08 ] C99で構造体中のみ可変配列みたいなのできなかったっけ?
315 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 01:57:19 ] >>313 Cでは大丈夫 C++では無理 >>314 それ構造体の最後のメンバだけ
316 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 06:06:06 ] struct e{ int hage; char fuga[]; } *p; p = (struct e *)malloc(sizeof(struct e) + 123) fuga[123] = '\0'; とか?
317 名前:229=235 mailto:sage [2007/11/08(木) 06:16:50 ] >>297 =237さん うああー!すいませんっ!!! お礼書き忘れてました。やってしまいました。 本当にすみませんm(__)m ありがとうございました。
318 名前:デフォルトの名無しさん [2007/11/08(木) 18:32:27 ] .NET Framwrork を使って、リアルタイムでマイクから音声を取得したい場合はどんな風にすればいいですか? 音声認識にはJulius というのを使おうかと思います。 WMPの視覚エフェクトの真似事をしたいと思っています。
319 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 18:45:02 ] それ、.NETは何処かに関係してくるのか?
320 名前:デフォルトの名無しさん [2007/11/08(木) 18:48:30 ] C# で楽してつくりたいと思っています。 それで .NET としたんですが、何か変なことを言ってましたでしょうか? すみません。
321 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 18:49:27 ] >>318 俺はここを参考にした www.vbstation.net/wpf/index.php/%E9%9F%B3%E5%A3%B0%E8%AA%8D%E8%AD%98-%E5%9F%BA%E6%9C%AC 先に言っておくとSAPI5.1もJulius期待するほど精度良くなかった、俺の環境では >>319 思いっきりWPFの範疇
322 名前:デフォルトの名無しさん [2007/11/08(木) 18:51:09 ] >>321 どうもありがとうございます。 早速いじってみようと思います。
323 名前:デフォルトの名無しさん [2007/11/08(木) 19:47:18 ] .NET Frameworkはバージョン管理面倒なので、使いたくない Delphiは販売元が死んでるので除外 ブラウザで動くようなWEBアプリではなく、クライアントにインストールする形式のアプリを作りたい ↑ この条件だと、どの開発環境がベターでしょうか?
324 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 19:48:39 ] VC++
325 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 19:54:20 ] バージョン管理が面倒とかいってたら、ライブラリ使えないじゃん。
326 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 19:56:25 ] どれも噂を耳にするだけで使ったこと無いんだろうな
327 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 20:39:49 ] 実際のところ.NETアプリの運用時にDLL HELLみたいな問題はあるの?
328 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 20:43:04 ] 無い
329 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 21:40:50 ] 無いこともない
330 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 21:43:51 ] ほぼ解決した
331 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 01:11:17 ] まだ初心者ですがプログラマーになるべく、予算12万程度で新しいノートPCを買おうと思ってるのですが、 この程度の予算のPCでは複雑なプログラムを組んだりするとキツくなるのでしょうか? 分野はJ2EEになるのでtomcat,apache,データベース、eclipse、その他ツール・・・と色々立ち上げることになりそうです。
332 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 01:14:55 ] >>331 今どきのノートなら少々酷使しても何とかなる。 とりあえずメモリを多めに積んでおくと安心。
333 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 01:18:18 ] メモリ1GBは必須。512MBじゃスワップしまくってお話にならない。 マウスも買い足したほうがいい。 後は適当でいいよ。予算ケチったらそれに比例して緩やかにキツくなっていくだけの話。 開発するならコスパに優れたデスクトップを強く勧めるが。
334 名前:331 mailto:sage [2007/11/09(金) 01:42:28 ] >>332 >>333 助言ありがとうございます。 メモリが重要ということなのでメモリ1Gを軸に探してみます。 あと実はトラックポイント厨なのでどうしてもrenovoのノートを買いたいんです。
335 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 01:48:13 ] メモリは2GB以上がいいと思う
336 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 21:49:56 ] ノートPCで開発なんてドラム缶に湯を張った風呂みたいなもんだ。
337 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 21:55:22 ] 風情があるな
338 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 22:13:21 ] 自分ならDellで11万くらいのノート買って自分でメモリ増設するな
339 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:03:59 ] p = (struct Point *)malloc( sizeof(struct Point) ); p->y = 10; cout << (*p).y << endl; 構造体の中の変数にアクセスするとき この場合だと p.y が出来なくて p->.y (*p).y になるのはなんで?
340 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:18:06 ] ポインタだから
341 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:33:36 ] p = (struct Point *)malloc( sizeof(struct Point) *10); とかにしたときは p[4].y って出来るのはなんで?
342 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:45:12 ] (*p).y と p->y が等価ということはわかってんのだろうか、とか そもそも p の型はどういう型なんだよ、とか
343 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:53:58 ] >>341 ポインタだから
344 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:56:35 ] >(*p).y と p->y が等価ということはわかってんのだろうか、とか それは把握しとります。 struct Point *p; で宣言して、色々やってたら、不思議に思いまして なんで配列で宣言するとp[].yみたいな表現が可能になるのか
345 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 23:59:48 ] 添え字演算子だから
346 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 00:36:44 ] >>339 まとめて説明すると、 struct Point *p,q; //メモリ確保省略 q.x = 0; // .の左側は構造体そのもの(≠ポインタ) (*p).x = 0; // ポインタを通してアクセスする時は*でポインタを外すか、 p->y = 1; // アロー演算子を使う p[1].x = 2; // []は*の効果も兼ねている(意味が分からなければポインタの配列的アクセスについて勉強しなおすこと) (*(p + 1)).x = 2; //これは上と同じ (p + 1)->x = 2; //同上
347 名前:デフォルトの名無しさん [2007/11/10(土) 01:42:51 ] 大学のPCでC言語でプログラムを作成しました。 画面に日本語を表示させて、数字を打ち込めばまた日本語を表示するプログラムです。 大学のUNIXでは日本語を画面に表示できましたが、家のUNIXでは日本語表示できません。 これはOSを日本語表示を可能にする何かをすればいいと思っているのですが、 プログラム側での努力では解決できないのでしょうか?
348 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:47:00 ] 家のUnixの素性を教えろ。
349 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:48:12 ] >>347 日本語のグリフをターミナルに描画するコードを加えればいい。 OSを日本語表示を可能にする方がずっと楽だけど。
350 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:57:52 ] 古典的な説明 構造体テンプレート struct st { int x; int y; }; st:構造体タグ / x, y:メンバ struct st a; K&Rは構造体の名前と表すが構造体の変数という人もおる struct st *b; 構造体へのポインタ 名前(変数)による構造体メンバへのアクセス a.x 名前(変数)とメンバを構造体メンバ演算子"."で結びつけましょう ポインタによる構造体メンバへのアクセス *b.x メンバ演算子"."が"*"より演算子の優先度が高いのでこの記法では *(b.x) という意味になるので (*b).x という形でカッコを必ずつけましょう 構造体へのポインタはよく使われるので便法としての記法が用意されています b->x 構造体へのポインタでメンバを指す為の便宜的記法
351 名前:347 [2007/11/10(土) 02:12:22 ] >>348 FreeBSDを使用しています。これは素性ってやつでしょうか? >>349 一行目は、すいませんまったくりかいができないです。 二行目は、ゆとりなので日本語化の分かりやすいページがあれば教えてください。
352 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 02:41:01 ] >>351 UNIX板のFreeBSD質問スレのほうが適切だと思うけど i386系かつCUIで表示したいならkonをインストールする選択がある ※amd64系はkonは使えない X window system で環境変数LANGを適切に設定すれば表示できる
353 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 08:40:11 ] まあ、チョンだな。
354 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 11:39:03 ] >>347 表示できないって何も出てこないのかなぁ? そうじゃなければ単に端末の encoding を settings 等からいろいろ試せば良い だけじゃないのかな。単にデフォルトが違うとか。(X は使ってるよね) そんな簡単な問題じゃないのかな…
355 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 11:43:00 ] FreeBSD((98)を使えばいいだけの話
356 名前:156 mailto:sage [2007/11/10(土) 11:46:33 ] >>158-159 遅レスですまないが、悩んだ末に注文してみた。 C++は何だか使い道が解らないイメージがあったんで今からワクテカ中
357 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:39:13 ] STL勉強するならここ ttp://www.wakhok.ac.jp/~sumi/stl/index.html
358 名前:デフォルトの名無しさん [2007/11/10(土) 17:48:26 ] Rubyってオブジェクト指向可能なインタプリタな言語ですか?
359 名前:デフォルトの名無しさん [2007/11/10(土) 17:57:09 ] オブジェクト指向スクリプト言語ですね 自己解決しました。 もうひとつ質問なのですが、RubyからDirctXは扱えるのでしょうか?
360 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 17:58:07 ] はい
361 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 18:28:16 ] いいえ
362 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:17:06 ] ポインタについて質問です int a = 100; int *p = &a; という使い方をよく見るのですが int *p; *p=100; という風にするとエラーが出ます。これは何故なのでしょうか。 ポインタそのものに100を入れているつもりなのですが
363 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:22:39 ] ポインタそのものに値100を入れる=ポインタがアドレス100を指すようにするのは、 p = (int*)100; だ。 int *p = &a; というのは int *p; p = &a; のことだ。 int *p; *p=100; は、まだどこも指していないポインタpの指す先に100を入れている。
364 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:23:50 ] エラーと警告を混同するな。
365 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:25:47 ] >>363 ありがとうございます。 int *p だけだと、ほんとに何も無い状態ということですね ポインタって、初めの状態だと何も無いんですね。
366 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:25:53 ] >>362 エラーつーか実行時の異常終了だろ? 下はpに入れ物(=アドレス)が割り当てられてない。 int a; int *p; p=&a; *p=100; ならOK; pにはaのアドレスが入ってるから、a=100;と同じ。 p=100;を意図してるなら、WinやLinux等でこんなアドレスを直接指定すること自体が間違い。 組み込み系ならRAMを壊すとかI/Oマップドメモリを壊すなど予想を超えた問題を味わえる。
367 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:29:33 ] 続けて質問なのですが double *p; p=(double*)0.0; double d0 = 1; double d1 = 2; p = ( d0 + d1 ) / 2; という処理をしたいのですが最後の行でエラーが出て デバッグでみてもCXX0030: Error: 式を評価できません、と出ます。。。なぜ
368 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:31:03 ] >>367 (double*)0.0; <- double を double* にキャストしてる p = ( d0 + d1 ) / 2; <- double を double* 型変数に代入してる。
369 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:31:52 ] ポインタに浮動少数データを入れて何がしたいんだ?
370 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:33:01 ] p=(double*)0.0; × ポインタに値を入れるわけがない。 double a; p=(double*)&a; とでもして、 *p = ( d0 + d1 ) / 2;
371 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:33:29 ] >>367 何をしたいのか日本語で説明してみ?