構造体で作った変数の中に値を代入したいのですが、値が全く入ってくれません。
以下にその部分のソースを書きます。
#include "DxLib.h" #include <math.h> #define KBMAX 20 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode( TRUE ) ; if( DxLib_Init() == -1 ) return -1; typedef struct{ int flag; double kabux,kabuy,Angle,mem_kx,mem_ky; } kbface; typedef struct{ int flag,counter,img; kbface kbgao[KBMAX]; } kbfaces; kbfaces kbgaos; for(int i=0;i<KBMAX;i++){ kbgaos.kbgao.flag=0; kbgaos.kbgao.kabux=0; kbgaos.kbgao.kabuy=0; } SetDrawScreen( DX_SCREEN_BACK ) ; int White = GetColor( 255 , 255 ,255 ) ; int bbb; for(bbb=0;bbb<25;bbb++){ for(int j=0;j<KBMAX;j++){ if(kbgaos.kbgao[j].flag==0){ kbgaos.kbgao[j].flag=1; kbgaos.kbgao[j].kabux=104; kbgaos.kbgao[j].kabuy=250; ClearDrawScreen(); for(int f=0;f<KBMAX;f++){ DrawFormatString(500,20*f, White , " %d" ,kbgaos.kbgao[f].flag); DrawFormatString(300,20*f, White , " %d" ,kbgaos.kbgao[f].kabux); DrawFormatString(400,20*f, White , " %d" ,kbgaos.kbgao[f].kabuy); } WaitKey() ; ScreenFlip() ; break; } } } WaitKey() ; DxLib_End() ; return 0 ; }
flagの方には値が入っているのに、
kbgaos.kbgao[j].kabuxの方には代入されてくれません。
最終的にこの中にランダムな値を入れたいのですが、それも入ってくれないために
試しに定数を代入させてみたのですがそれでも入ってくれません。
doubleで決めた値なので整数じゃだめなのかと思い、小数を入れてみましたが
今度は変な値がでてきてしまいます。
(double)をつけても駄目でした。
なぜkbgaos.kbgao[j].kabuxには値が入らないのでしょうか。
僕にはどこか根本的な知識が抜けているのでしょうか。
そして、どうすれば値が入るのでしょうか。
教えてください。
WindowsXpでVC++ 2008EEを使ってコンパイルしています。
C言語に関しては、初心者です。