在MFC(C++)中定义了一个全局结构体,在其他函数中用这个结构体,编译调试没错,运行却不行,这是为什么?

 我来答
俎晨朗7F
2012-05-13 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:94
采纳率:0%
帮助的人:118万
展开全部
extern song aa[5]这个放错了位子,在course.h头文件里只需要声明结构体即可,
在course.cpp中定义,这样一个完整的结构体就成功了。
你的想法应该是想在course.cpp以外的文件中调用结构体song,这个时候在你需要调用
song aa[5]的文件中声明extern song aa[5]即可。
当然切记需要将course.h包含进来。希望能帮到你...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z_121579644
2012-05-10 · TA获得超过315个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:227万
展开全部
这肯定不是结构体的原因! 估计是你操作结构体的代码写的有问题…… 好好检查
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
用兵如神Garbin
2012-05-17 · 超过25用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:50.8万
展开全部
关于这个问题,步聚如下:
1、在头文件中定义结构体
typedef struct song
{
char name[10];
char number[20];
}SONG;
2、在源文件开头定义一个结构体对象并初始化
SONG aa[5] = {"songxin", "12356"};
3、调用
CString ss;
ss = aa[0].name;
AfxMessageBox(ss);
以上只是一个小小的测试,结构体在C里是很有用的,当然C++还可以用类,请笑纳!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9df37c8
2012-05-11 · TA获得超过215个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:223万
展开全部
发代码看看啊
更多追问追答
追问
void CXinjian::OnButton1() 
{
int flag=0;
for(int i=0;i<5;i++)
if(aa[i].number==NULL){
flag=1;
break;
}
if(flag==1)
{
UpdateData(TRUE);
strcpy(aa[i].name,m_xin);
strcpy(aa[i].number,m_jian);
MessageBox("新建完毕!");

}
else{
MessageBox("内存已满!");
}
}
追答
xiaoxiong_xzm | 一级

他说的应该是对的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Bk0X
2012-05-09 · TA获得超过9413个赞
知道小有建树答主
回答量:1217
采纳率:60%
帮助的人:670万
展开全部
初始化时用到了其他的全局数据?
追问
好像没有。我先在course.h中声明 ,struct song{char*name;char*number;};extern song aa[5];再到course.cpp中定义。song aa[5]={"songlin","12356"}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式