| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1932 人关注过本帖
标题:让人无奈的错误
只看楼主 加入收藏
st_win
Rank: 2
等 级:论坛游民
帖 子:48
专家分:35
注 册:2010-9-19
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
让人无奈的错误
我在VS2010下
程序代码:
void Distorynode(NODE **boota)
{ NODE *q,*p;
if(boota=NULL)exit(0);

 
  p=*boota;

 while(p!=NULL)

 {  q=p;
    p=p->next;
    free(q);

 }
}
1>d:\软件\visual studio2010\wunai\wunai\wu.c(20): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>d:\软件\visual studio2010\wunai\wunai\wu.c(26): error C2065: “q”: 未声明的标识符
1>d:\软件\visual studio2010\wunai\wunai\wu.c(26): warning C4047: “=”:“int”与“NODE *”的间接级别不同
1>d:\软件\visual studio2010\wunai\wunai\wu.c(28): error C2065: “q”: 未声明的标识符
1>d:\软件\visual studio2010\wunai\wunai\wu.c(28): warning C4022: “free”: 指针与实参 1 不匹配
出现了这么多错误,怎么也不明白了 q=p 也居然是为声明的标识符~~ 大家给我指点指点阿
搜索更多相关主题的帖子: 软件 
2010-09-28 14:19
Spygg
Rank: 5Rank: 5
等 级:职业侠客
帖 子:135
专家分:394
注 册:2007-5-20
收藏
得分:5 
那个NODE的数据结构怎么定义的贴出来,应该作为全局变量来声明,还有至少你那个if(boota==NULL) exit(0);就有逻辑错误吧....
2010-09-28 15:31
st_win
Rank: 2
等 级:论坛游民
帖 子:48
专家分:35
注 册:2010-9-19
收藏
得分:0 
以下是引用Spygg在2010-9-28 15:31:40的发言:

那个NODE的数据结构怎么定义的贴出来,应该作为全局变量来声明,还有至少你那个if(boota==NULL) exit(0);就有逻辑错误吧....
typedef struct NODE
{ struct NODE *next;
          int  data;
}NODE;

我这样写的按你说的我把下面的NODE去了结果没了呵呵,但这几个错误怎么弄啊
1>d:\软件\visual studio2010\wunai\wunai\wu.c(8): error C2143: 语法错误 : 缺少“)”(在“*”的前面)
1>d:\软件\visual studio2010\wunai\wunai\wu.c(8): error C2143: 语法错误 : 缺少“{”(在“*”的前面)
1>d:\软件\visual studio2010\wunai\wunai\wu.c(8): error C2059: 语法错误:“)”
1>d:\软件\visual studio2010\wunai\wunai\wu.c(9): error C2054: 在“boota”之后应输入“(”
1>d:\软件\visual studio2010\wunai\wunai\wu.c(43): fatal error C1004: 发现意外的文件尾
说在void Initnode(NODE **boota)这又错误在指点指点呗~~
2010-09-28 15:44
Spygg
Rank: 5Rank: 5
等 级:职业侠客
帖 子:135
专家分:394
注 册:2007-5-20
收藏
得分:5 
///在VC 6.0下调试通过
#include "stdio.h"
#include "stdlib.h"
typedef struct node
{
    int data;
    struct node *next;
}NODE;

NODE *create(NODE *head)
{
    NODE *p,*q;
    int i;
    p=head=q=NULL;
    for(i=0;i<3;i++)
    {
        printf("Input number:\n");
        p=(NODE *)malloc(sizeof(NODE));
        p->next=NULL;
        if(p==NULL)
        {
            printf("malloc error!\n");
            exit(0);
        }
        if(head==NULL)
        {   
            head=p;
            q=p;
        }
        else
        {
            q->next=p;
            q=p;
        }
        scanf("%d",&p->data);
    }
    return head;
}

void print(NODE *head)
{
    NODE *p;
    p=head;
    if(head==NULL)
    {
        printf("The list is empty!\n");
        exit(0);
    }
    while(p!=NULL)
    {
        printf("%5d",p->data);
        p=p->next;
    }
    printf("\n");
}

NODE *Distorynode(NODE **boota)
{
    NODE *q,*p;
   
    p=*boota;
    if(boota==NULL)
        exit(0);
    while(p!=NULL)
    {
        q=p;
        p=p->next;
        free(q);
        q=NULL;
    }
    return p;
}

int main(void)
{
    NODE *head=NULL;

    head=create(head);
    print(head);
    head=Distorynode(&head);
    print(head);

    return 0;
}
2010-09-28 16:15
Spygg
Rank: 5Rank: 5
等 级:职业侠客
帖 子:135
专家分:394
注 册:2007-5-20
收藏
得分:0 
回复 3楼 st_win
很有可能是你使用了中文输入法状态,标点符号要用英文标点....
2010-09-28 16:18
st_win
Rank: 2
等 级:论坛游民
帖 子:48
专家分:35
注 册:2010-9-19
收藏
得分:0 
哦 原来是有个地方缺了一个“}”
2010-09-28 16:26
快速回复:让人无奈的错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.060982 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved