c语言中循环控制问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 16:50:45
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#define NULL 0
#define OVERFLOW -2
#define LIST_INIT_SIZE 100
#define LISTINCR 10
struct{
int *elem;
int length;
int listsize;
}list;
int *initlist(struct list s)
{
int *p1;
s.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int)); /*先开辟一块空间*/
if(!s.elem) exit(OVERFLOW);
p1=s.elem;
s.length=0;
s.listsize=LIST_INIT_SIZE;
while(getchar()!='\n');
{
scanf("%d",p1++);
s.length++;
if(p1-s.elem>=s.listsize)
{
s.elem=(int *)realloc(s.elem,(s.listsize+LISTINCR)*sizeof(int));
if(!s.elem) exit(OVERFLOW);
s.listsize+=LISTINCR;
}

}
return s.elem;
}
void main()
{
struct list s1,s2;
s1.elem=initlist(s1);
s2.elem=initlist(s2);
printf(&q

struct{
int *elem;
int length;
int listsize;
}list;
这个好像是一个无名结构,只有一个list实例,
也许这样声明就行
struct list {
int *elem;
int length;
int listsize;
};
***************
while(getchar()!='\n');
你这里是不是多了个分号?