这些天很忙所以没有上来看,你这问题是出现在scanf()函数的应用,scanf("%d\n", &(p->pbase));
\n是换行符,加入\n后,表示你输入一个整型数后还要输入一个,然后敲回车。去掉就可以解决问题了。

我还想问问你
好像与len一样,我不知道有什么意义,哈哈,我也顺便改了一下代码#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int len;
int cnt;
int *pbase;
}Arr;
//初始化数组
void Init(Arr *p)
{
p->pbase=(int *)malloc(sizeof(int *)*5);//给数组分配内存
p->len = 5;//初始化数组长度
if(NULL == p->pbase)
{
printf("动态内存分配失败\n");
exit(-1);
}
printf("系统获得该数组的长度为:%d\n", p->len);
for(int i=0; i<p->len; i++)
{
printf("请输入第%d个数据:", i+1);
scanf("%d", &(p->pbase[i]));
printf("第%d个数据是:%d ",i+1,p->pbase[i]);
}
printf("\n");
}
//显示数组
void show(Arr *p)
{
printf("5个数据分别是:");
int i;
for(i=0; i<p->len; i++)
{
printf("%d ", p->pbase[i]);
}
}
void main(void)
{
Arr a;
Init(&a);
show(&a);
}
|