###前提・実現したいこと
構造体をヘッダファイルとして扱おうとしたらエラーが発生しました
どこがおかしいか教えていただけないでしょうか
ヘッダに移動させる前はエラーは起こらず正常に動きました
###発生している問題・エラーメッセージ
エラーメッセージ
request for member 'BS_P' in something not a structure or union
###該当のソースコード
、、、、、、、、、、
include <stdio.h>
include <stdlib.h>
include <math.h>
include "struct.h"
int main(void){
int i; BS *bs[NUM_BS]; bs[NUM_BS] = (BS*)malloc(sizeof(BS)*NUM_BS); puts("-----------------------------------------------------------------------"); puts("bs_position\n"); puts("base_station x y \n"); for(i=0;i<NUM_BS;i++){ bs_point(&bs[i],i); printf("BS[%d] %.2f %.2f \n",i,bs[i].BS_P[0],bs[i].BS_P[1]); } return 0;
}
/struct.h/
typedef struct{
float BS_P[1];
// int Conected_MT[MAXMT];
// MT_LIST *header;
}BS;
、、、、、、、、、、、、、
動いていたときのコードが消えてしまったので抜けているところがあるかもしれません。
動いていたときのプログラム
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
typedef struct{
float BS_P[1];
// int Conected_MT[MAXMT];
// MT_LIST *header;
}BS;
BS *bs[NUM_BS];
void bs_point(BS *bs,int i){
if(i<1){
bs->BS_P[0]=0;
bs->BS_P[1]=0;
}
else if(i<7){
bs->BS_P[0]=sqrt(3)Rcos((i-1)*M_PI/3.0);//基地局1~7の場合
bs->BS_P[1]=sqrt(3)Rsin((i-1)M_PI/3.0);
}else if(i<19){
if(i%2==1){
bs->BS_P[0]=sqrt(3)R2cos((i-7)M_PI/6.0);//基地局8~19の場合
bs->BS_P[1]=sqrt(3)R2sin((i-7)M_PI/6.0);}
else {
bs->BS_P[0]=sqrt(pow(Rsqrt(3)3.0/2.0,2.0)+pow(R3/2,2))*cos((i-7)M_PI/6.0);
bs->BS_P[1]=sqrt(pow(Rsqrt(3)3.0/2.0,2.0)+pow(R3/2,2))*sin((i-7)*M_PI/6.0);
}
}
}
int main(void){
int i; puts("-----------------------------------------------------------------------"); puts("bs_position\n"); puts("base_station x y \n"); for(i=0;i<NUM_BS;i++){ bs_point(&bs[i],i); printf("BS[%d] %.2f %.2f \n",i,bs[i].BS_P[0],bs[i].BS_P[1]); } return 0;
}
、、、、、、、、、、、
回答1件
あなたの回答
tips
プレビュー