isleのプロフィール
- ベストアンサー数
- 77
- ベストアンサー率
- 51%
- お礼率
- 0%
- 登録日1899/11/30
- 未初期化変数の扱い方についての質問
Microsoft Visual C++ 2008を使用しています。 #include <stdio.h> int main() { float a; … for(;;) { … scanf("%f",&a); … printf("%f",a); } } このようなプログラムを書いて、実行しました。 aという変数に数字を入力すれば問題ないのですが、誤って文字を入力してしまうと、-107374176という値が連続で出力されます。(for文のループが無限に繰り返される。) for文ではあるキーワードを入力するとループから出るというプログラムになっています。 間違って文字を入力する時にどの文字を入れても必ず、-107374176の値になるので調べたら、「-107374176は0xccccccccでvcのデバッグビルド時の未初期化変数の値と一致する。」という内容をネットで見つけました。 変数として定義されていて、初期化されていない変数を未初期化変数ということなので、aが未初期化変数になるのはわかるのですが、なぜループが無限につづくのかが理解できません。 質問の回答をよろしくお願いします。
- eclipse: 自宅と職場でソースコードを共有する方法
自宅と職場で eclipse を使っています。 職場でのプログラムの続きを自宅でやりたいので、 C:\workspace を自宅と職場で(USB経由で)同期しました。eclipse のバージョンも自宅と職場で全く同じです。 しかし、職場でプログラムしたものを自宅の workspace に同期してから自宅のeclipseを起動すると、 「F5キーで再読込しろ」 とメッセージが出ます。 再読込すれば大丈夫なので実害はあまりないのですが、何となく不安です。 自宅とソースコードを共有するもう少しスマートで、かつ、簡単な方法はないでしょうか? 自宅/職場ともネットにはつながっていて、Windows XP Professional です。 よろしくお願いします。
- 締切済み
- Java
- white-tiger
- 回答数1
- JAVAのアプレットのアニメーションの質問
javaのアプレットに関する質問なんですが、今次の条件でアニメーションを作っているんですが、どうしても解決できない問題があります。 赤い長方形が左から右に動いていくプログラムを作成する。 ・ 長方形が描画領域 の右端に消えると左端から再 度出現するようにせよ。 ・ Reverseと書かれたボタンを押すと長方形の進行方 向が左右反対になる。 ・ このとき、左右どちらの端に長方形が消えた場合も 反対端から長方形は出現する。 ・ 長方形をクリック(ボタン押下)すると長方形の色が 変化する。 ・ 赤い長方形であれば青に、青い長方形であれば赤 に変化する。 この条件でつくろうと思っているのですが、長方形をクリックしたときに、色の変化がどうしてもできません。どこに問題があるか分かりません。御教授お願いします。 import java.applet.Applet; import java.awt.Graphics; import java.awt.Color; import java.awt.Font; import java.awt.Button; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.MouseListener; public class Report2 extends Applet implements Runnable,ActionListener,MouseListener{ int x=100; int y=50; int width=80; int height=120; int dir=-2; int w; int z; Button bt; boolean direction; boolean colorRed; public void actionPerformed(ActionEvent ae){ if(direction==true){ direction=false; } else{ direction=true; } } public void init(){ bt=new Button("Reverse"); add(bt); bt.addActionListener(this); Thread th; th =new Thread(this); th.start(); addMouseListener(this); } public void mouseClicked(MouseEvent e){ w=e.getX(); z=e.getY(); repaint(); if(e.getX()>=x && e.getX()<=x+width && e.getY()>=y && e.getY()<=y+height){ colorRed=!colorRed; } } public void mouseEntered(MouseEvent e){ } public void mouseExited(MouseEvent e){ } public void mouseReleased(MouseEvent e){ } public void mousePressed(MouseEvent e){ w=e.getX(); z=e.getY(); repaint(); if(e.getX()>=x && e.getX()<=x+width && e.getY()>=y && e.getY()<=y+height){ colorRed=!colorRed; } } public void run() { while(true){ x++; if(x==400){ x=-80; } if(direction==true){ x=x+dir; } else{ } repaint(); try{ Thread.sleep(30); } catch(InterruptedException e){} } } public void paint(Graphics g){ g.setColor(Color.white); g.fillRect(0,0,400,200); g.setColor(Color.red); g.fillRect(x,y,80,120); if(colorRed=true){ g.setColor(Color.red); } if(colorRed=false){ g.setColor(Color.blue); } g.fillRect(x,y,width,height); g.setColor(Color.black); g.fillRect(x,y,10,10); } }
- ベストアンサー
- Java
- cute_heroe
- 回答数1
- crypt関数を含むプログラムソースのgccを用いたコンパイルについて(C言語)
crypt関数を含むCのプログラムソースをgccを用いてコンパイルしようとしたところ、 /cygdrive/c/DOCUME~1/○○○/LOCALS~1/Temp/ccGF0SZX.o:trip.c:(.text+0x373): undefined reference to `_crypt' collect2: ld returned 1 exit status と出てコンパイルできませんでした。 最初はcygwinのインストールの時に何かが足りていなかったのだろうと思い、すべてインストールしなおしたのですがそれでもやはりだめでした。 http://www.ninnin.net/blog/archives/000508.html に、gccなら問題なく使えると書いてあったのですが2005年の記事なので今はもう使用できなくなってしまったのでしょうか? どうかご教授お願いします。
- 【VC++6.0(MFC)】Access Violationの対応の仕方
いつも大変お世話になっております。 VC++初心者です。 現在、VC++6.0(MFC)で先人が作成したソースを改良しています。 デバグモードで動かすと、 以下のメッセージが表示されるのですが、 どのように対応すればよいか、教えていただけませんでしょうか。 「例外処理 (初回) は XXXX.exe (NTDLL.DLL) にあります: 0xC0000005: Access Violation」 (※XXXXはプロジェクト名です。) (※デバグモードで動かすと同時に上記エラーが出力されます。) 上記のエラーが出ていても動かせるのですが、 デバグモード時に、メニューの「デバッグ」、「例外処理」で 「 Access Violation」の設定を 「ハンドルされてなければ停止」から「常に停止」に変更すると、 最初の画面も開けずに、混合モード画面の 7C95AB0A inc dword ptr [eax+10h] という箇所で必ず止まって、落ちてしまいます。 ここから、どのように対処すればよいか、ご教授頂きたくお願いします。