[英]typedef struct error in c program
謝謝你分享你的知識:)! 我剛用devc ++編寫了這個c程序,我有很多關於typdef和struct的錯誤:“無效使用未定義類型struct item'" for every line with "->" operator, "forward declaration of
struct item struct item'" for every line with "->" operator, "forward declaration of
struct item ''對於第4行,這是代碼:
#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);
}
}
謝謝!
主要問題是你拼寫“item”“itme”。 發生在我們最好的人身上。
我沒看過你所有的代碼,但似乎有一個錯字
typedef struct item * ptr;
typedef struct itme {
這段代碼也是如此
while(p3)
{
printf("%d ",p3->data);
p3=p3->next;
}
沒有意義,因為p3
是由NULL顯式初始化的
ptr H=NULL;
ptr p3=H;
至少在循環之前你應該添加語句
p3 = H;
另外在函數add2list
還有另一個拼寫錯誤
你聲明了指針T
,然后進一步使用指針t
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;
函數freeList也錯了。
而不是聲明
while(H)
應該有
while( *H )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.