당신의 knowladge 공유 주셔서 감사합니다 :)! 난 그냥 devc이 C 프로그램을 작성 ++와 나는 typdef과 같은 구조체 에 대한 오류가 많이있어 :C 프로그램에서 typedef 구조체 오류
#include <stdio.h>
#include <stdlib.h>
typedef struct item* ptr;
typedef struct itme
{
int data;
ptr next;
}node;
void add2list(ptr*,int);
void freeList(ptr*);
int main()
{
ptr H=NULL;
ptr p3=H;
int num;
while (scanf("%d",&num)!=EOF)
add2list(&H,num);
while(p3)
{
printf("%d ",p3->data);
p3=p3->next;
}
printf("end\n");
freeList(&H);
return 0;
}
void add2list(ptr* H, int num)
{
ptr p1,p2,T;
T=(ptr)malloc(sizeof(node));
if(!T)
{
printf("cannot allocate memory\n");
exit(0);
}
t->data=num;
p1=*H;
while(p1)
{
if(p1->data==num)
{
free(T);
goto duplicate;
}
else
{
p2=p1;
p1=p1->next;
}
}
T->next=p1;
if(p1==*H)
*H=T;
else
p2->next=T;
duplicate:;
}
void freeList(ptr* H)
{
ptr p1;
while(H)
{
p1=*H;
(*H)=p1->next;
free(p1);
}
}
: 4 호선 이는 " '정의되지 않은 유형
struct item'" for every line with "->" operator, "forward declaration of
구조체 항목의 잘못된 사용은"코드입니다
감사합니다.
이있을 것이며, 어떻게 당신은 왜 ('을 ptr'와'node' 필요 'node'를 사용하지 말라),'ptr'도'item' 앞에 선언되어 있습니까? – crashmstr
'typedef struct itme {'typo를 확인하십시오. 또한, 구조체 정의 뒤에'typedef struct item * ptr;'을 이동하십시오. 왜'H'와'p3' 둘 다 필요합니까? –
@dvir naim 자격이없는 프로그래머와 대부분의 경우 C에서 malloc 앞에 캐스팅하지 마십시오. –