小弟的想法是,首先动态申请一个int字节内存,存个数,然后循环输入数字,循环申请int字节内存
问题是 我试了好多方法,始终写不出正确的判断输入结束的语句,望指教!谢了
#include <stdio.h>
#include <stdlib.h>
void main()
{
int *p=NULL,m=0;
int i=0,n=0;
p=(int *)malloc(sizeof(int));
*p=0;
p++;
while('EOF'!=scanf("%d",&m)) // 判断输入的结束 就在这不知道怎么写 请指教
{
p=(int *)malloc(sizeof(int));
*p=m;
n++;
p++;
}
for(i=0;i<=n;i++) //让P指向数组起点
{
p--;
}
for(i=0;i<n;i++)
{
printf("%d ",*(p+i));
}
free(p);
}
看了斑竹和那朋友的指导,又写了下面的代码,运行不了,断点测试不起作用,能帮看看吗,谢了!
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
int *p=NULL,m=0,*q=NULL;
int n=0,i;
p=(int *)malloc(2*sizeof(int)); //申请存放个数和结束标志空间
*p=0;
for(q=p+1;getch()!=EOF;q++) //q指向下一个申请空间的地址 getch()获取的是什么
{
scanf("%d",&m); //总觉得这个地方有问题
q=(int *)malloc(sizeof(int));
*q=m; //q的值为输入的数
n++;
}
*p=n; //动态数组第一个元素为数字个数
for(i=0;i<=n;i++)
printf("%d ",*(p+i));
}