调试的时候没错,但是链接就错,望各位高手指点

调试没错,但是在链接就出错
#include <stdio.h>

int i,e,a[];
int *begin,*end;

int make(int a[])
{
int b,e=0;
printf("请输入数组的值,以0结束");
scanf("%d",&b);
if(b)
{
a[e]=b;
e++;
}
return e;
}

void left()
{
int * begin,* end,*b,i;
int p,q;
q=e-1;
begin=a;
*end=a[e];
printf("请输入右移的位数");
scanf("%d",&p);
for(p;p>0;p--)
{
begin=end;
*end=a[q];
q=q-1;
}
b=begin;
for(i=0;i<=e;i++)
{
a[i]=*b;
b++;
}
}
void xian()
{
for(i=0;i<=e;i++)
{
printf("%d",a[i]);
}
}
int main()
{
int c[15];
make(c);
left();
return 0;
}

慕婉清6462132
浏览 57回答 2
2回答

九州编程

int a[]如果不是作为形参是不能这样定义的,必须在定义是进行初始化;gcc编译候会有warning: array ‘a’ assumed to have one element如果忽略warning候当你输入数字候会出现:Segmentation fault而且输入没有循环?很是郁闷了。重新改改吧!

繁星点点滴滴

int i,e,a[];这个定义能过吗?变量e在程序中的使用也是不知所云。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java