外部数组,如何使用
我想使用大小为 50 的外部字符数组。
我有 extern.h,
extern char arr[50];
我有 ac,我可以在其中访问 arr
。
我有 bc 那是我的驱动程序文件。
另外,我在 ac 中也有函数定义,
现在在我的驱动程序文件 bc 中,我有
#include"extern.h"
#include"a.h"
char arr[50];
int main()
{
//call to function in a.c
}
,在我的 ac 中,
#include"a.h"
#include"extern.h"
int function1()
{
//accessing arr, say printing arr[1]
}
这给了我 seg 错误。
我是否包含正确的文件,并且我在 extern.h 和 bc 中的外部 var 声明是否正确?
导致段错误的原因是什么?
I want to use external character array say of size 50.
i have extern.h
extern char arr[50];
i have a.c where i am accessing the arr
.
and i have b.c that is my driver file.
Also i have a.h having definitions of functions in a.c
Now in my driver file b.c i have
#include"extern.h"
#include"a.h"
char arr[50];
int main()
{
//call to function in a.c
}
and in my a.c i have
#include"a.h"
#include"extern.h"
int function1()
{
//accessing arr, say printing arr[1]
}
This gives me seg fault.
Am i including the file right, and my declaration of external var in extern.h and in b.c are correct.?
What is causing the seg fault?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您使用 extern 的方式没有问题。
如果 bc 中的 extern 声明会隐藏
char arr[50];
声明,那么就会出现链接错误。问题一定出在其他地方。也许以 printf 的使用方式?
There is no problem in the way you are using extern.
If the extern declaration in b.c would hide the
char arr[50];
declaration, then you would have a linkage error.The problem must be elsewhere. Maybe in the way printf is used?