| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1310 人关注过本帖
标题:编译调试无问题,运行出错,求大神指点啊!
只看楼主 加入收藏
upsate
Rank: 2
等 级:论坛游民
帖 子:14
专家分:21
注 册:2011-12-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
编译调试无问题,运行出错,求大神指点啊!
程序代码:
#include<stdio.h>
#include<stdlib.h>
struct node *LinkListCreate();
struct node *BubbleSort(struct node *Header);
void print(struct node *Header);
struct node
{
    long int data;
    struct node *next;
};
int main()
{
    struct node *Header;
    Header = LinkListCreate();
    Header = BubbleSort(Header);
    print(Header);
    return 0;
}
struct node *LinkListCreate()
{
    struct node *Header = NULL;
    struct node *p1, *p2;
    int n = 0;
    char *string,*stopstring;
    p1 = (struct node *)malloc(sizeof(struct node));
    printf("Please input an integer number:\n");
    scanf("%s",string);  //实际输入当作字符串处理          这里出问题了,说string未初始化,但是不知道是怎么回事
    p1->data = strtol(string,&stopstring,10);
    p2 = p1;
    while (('q' != *stopstring)||('Q' != *stopstring))
    {
        n = n + 1;
        if (1 ==n)
            Header = p1;
        else
            p2->next = p1;
        p2 = p1;
        p1 = (struct node *)malloc(sizeof(struct node));
        printf("Please input an integer number:\n");
        scanf("%s",string);
      
     }
    p2->next = NULL;
    return (Header);
}

struct node *BubbleSort(struct node *Header)
{
    struct node *p1,*p2;
    long int temp;
    if (NULL == Header)
    {
        printf("The linked list is Null!");
        return Header;
    }
    for (p1 = Header; NULL != p1->next;p1++)
    {
        for (p2 = p1->next;NULL != p2;p2++)
        {
            if (p1->data < p2->data)
            {
                temp    = p1->data;
                p1->data = p2->data;
                p2->data = temp;
            }
        }
        Header = p1;
    }
    return (Header);
}
void print(struct node *Header)
{
    struct node *p;
    printf("The sorted number is:\n");
        p = Header;
        if (NULL != Header)
        do
        {
            printf("%ld ",p->data);
            p = p->next;
        }while (NULL != p);
}

求大神指点啊!
2012-03-18 12:23
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
字符串不太明白丶观忘中

编程之路定要走完……
2012-03-18 12:26
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:5 
程序代码:
    p1 = (struct node *)malloc(sizeof(struct node));
    printf("Please input an integer number:\n");
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    scanf("%s",string);  //实际输入当作字符串处理          这里出问题了,说string未初始化,但是不知道是怎么回事
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#pragma message("Fix const char * bugs")
    gets(string = malloc(sizeof(int)));
    p1->data = strtol(string,&stopstring,10);
    p2 = p1;

技术问题,请不要以短消息方式提问
2012-03-18 15:01
upsate
Rank: 2
等 级:论坛游民
帖 子:14
专家分:21
注 册:2011-12-26
收藏
得分:0 
回复 3楼 zaixuexi
error C2440: “=”: 无法从“void *”转换为“char”        35    1    TRY
IntelliSense: 不能将 "void *" 类型的值分配到 "char *" 类型的实体     35    18    TRY

改过之后就有这样的问题,不是很清楚;麻烦大神再帮忙看下。
非常感谢!
2012-03-18 18:47
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果你从来没学过指针,就绝不会犯这类错误。

授人以渔,不授人以鱼。
2012-03-18 18:50
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
调试器是干嘛的啊

                                         
===========深入<----------------->浅出============
2012-03-18 19:04
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
char *string;
scanf("%s",string);

你觉得这里scanf()的string指针指向哪里可供输入使用?稍微学了点指针,就把char *当字符串定义用,都不想再啰嗦这种问题了。

授人以渔,不授人以鱼。
2012-03-19 02:09
moonnight
Rank: 5Rank: 5
等 级:职业侠客
帖 子:158
专家分:380
注 册:2012-3-17
收藏
得分:5 
#include<stdio.h>
 #include<stdlib.h>
 struct node *LinkListCreate();
 struct node *BubbleSort(struct node *Header);
 void print(struct node *Header);
 struct node
 {
     long int data;
     struct node *next;
 };
 int main()
 {
     struct node *Header;
     Header = LinkListCreate();
     Header = BubbleSort(Header);
     print(Header);
     return 0;
 }
 struct node *LinkListCreate()
 {
     struct node *Header = NULL;
     struct node *p1, *p2;
     int n = 0;
     char *string,*stopstring;
     /*方案1
     char str[10];
     string=str;*/
     /*方案2*/
     string=(char *)malloc(sizeof(char)*10);//10我随便写的
     //指针声明时,指针指向系统随机分配的地址,有可能是操作系统的某条重要指令,所以不能给未知地址赋值,这样是不安全的
     p1 = (struct node *)malloc(sizeof(struct node));
     printf("Please input an integer number:\n");
     scanf("%s",string);  //实际输入当作字符串处理      
     p1->data = strtol(string,&stopstring,10);
     p2 = p1;
     while (('q' != *stopstring)||('Q' != *stopstring))
     {
         n = n + 1;
         if (1 ==n)
             Header = p1;
         else
             p2->next = p1;
         p2 = p1;
         p1 = (struct node *)malloc(sizeof(struct node));
         printf("Please input an integer number:\n");
         scanf("%s",string);
      
      }
     p2->next = NULL;
     return (Header);
 }
 
struct node *BubbleSort(struct node *Header)
 {
     struct node *p1,*p2;
     long int temp;
     if (NULL == Header)
     {
         printf("The linked list is Null!");
         return Header;
     }
     for (p1 = Header; NULL != p1->next;p1++)
     {
         for (p2 = p1->next;NULL != p2;p2++)
         {
             if (p1->data < p2->data)
             {
                 temp    = p1->data;
                 p1->data = p2->data;
                 p2->data = temp;
             }
         }
         Header = p1;
     }
     return (Header);
 }
 void print(struct node *Header)
 {
     struct node *p;
     printf("The sorted number is:\n");
         p = Header;
         if (NULL != Header)
         do
         {
             printf("%ld ",p->data);
             p = p->next;
         }while (NULL != p);
 }
 
2012-03-19 09:48
upsate
Rank: 2
等 级:论坛游民
帖 子:14
专家分:21
注 册:2011-12-26
收藏
得分:0 
回复 8楼 moonnight
谢谢啦!
2012-03-19 20:35
moonnight
Rank: 5Rank: 5
等 级:职业侠客
帖 子:158
专家分:380
注 册:2012-3-17
收藏
得分:5 
回复 9楼 upsate
不用!我也是初学者,一起学习
2012-03-19 20:41
快速回复:编译调试无问题,运行出错,求大神指点啊!
数据加载中...
 
   



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

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