|
发表于 2011-12-21 12:34:18
|
显示全部楼层
这些天很忙所以没有上来看,你这问题是出现在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);
- }
复制代码
|
|