| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1655 人关注过本帖
标题:分配内存错误了...
只看楼主 加入收藏
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
分配内存错误了...
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
struct s
{
    int a;   //存放有效数据//
    struct s *zzy;  //存放下一个节点的地址//
};
int main(void)
{
    void lianbiao(struct s *tzz);            
    void sclianbiao(struct s *tzz);               
    struct s *tzz=(struct s *)malloc(sizeof(struct s));
    lianbiao(tzz);  //调用创建链表函数//
    sclianbiao(tzz);//调用输出函数//
    getch();
    return 0;
}
void lianbiao(struct s *tzz)  //创建创建链表函数//
{
    void srlianbiao(struct s *tzz);
    struct s *fplc=0,*syzz=tzz;  //分别定义存放内存地址存放指针和上一节点地址//
    int i,n;
    printf("输入需要创建链表节点个数:\n  ");
    scanf("%d",&n);
    for(i=0;i<n-1;i++)
    {
        fplc=(struct s *)malloc(sizeof(struct s));  //分配内存到变量fplc//   
        if(fplc==0);                  //判断内存分配是否正常 否者结束程序//
        {
            printf("分配内存错误!程序结束....");
            exit(1);                         //结束程序//
        }
        syzz->zzy=fplc;
        syzz=fplc;
    }
    fplc->zzy=0;
    srlianbiao(tzz);              //调用输入函数//
}
void srlianbiao(struct s *tzz)
{
    struct s *a=tzz;
    int f;
    for(f=0;a!=0;f++)
    {
        printf("请输入第%d个节点数据域的值:",f);
        scanf("%d",&a->a);
        while(a->a<0)
        {
            printf("输入错误!请重新输入:");
            scanf("%d",&a->a);
        }
        a=a->zzy;
    }
}
void sclianbiao(struct s *tzz)  //创建输出函数//
{
    struct s *a=tzz;
    int f;
    for(f=0;a!=0;f++)
    {
        printf("第%d个节点数据域的值=%d\n",f,a->a);
        a=a->zzy;
    }
}
程序的第28行出错了,分配内存以后直接结束程序 我单独写一个分配内存的挒子 运行一切正常 但这个就是错了!!不可能每次调试系统都找不到合适的内存吧(几乎不可能)...
其他的地方还没调试过,不知道错没错 有错误的指点下吧~~
搜索更多相关主题的帖子: 内存 return include 
2011-11-21 19:17
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:10 
想都不用想, 之前有人发过,你们都是照同一本书抄的吗?
这句多了分号
if(fplc==0);

总有那身价贱的人给作业贴回复完整的代码
2011-11-21 19:48
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
收藏
得分:0 
回复 2楼 embed_xuel
每次都是这样一点小小的错误!上次的背包问题把++写成了--,分数平均分的问题,错误在把小数省略了  结果是定义浮点数的时候写成了int...狂晕!!!这次也一样啊。编译器怎么没报错?你说是抄的就是抄的呗 我说了没抄又会怎样?
2011-11-21 20:19
cosam
Rank: 4
等 级:业余侠客
帖 子:146
专家分:259
注 册:2011-8-25
收藏
得分:10 
这些是不该出现的错误。肯定是上机上得少,多上机写下代码啊。
2011-11-21 21:22
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 3楼 离开天空的云
我管你是不是抄的,问题出在那,自己要去分析一下为什么每次都报内存分配失败,否则以后出了类似问题你还是不会定位

总有那身价贱的人给作业贴回复完整的代码
2011-11-21 22:00
qq407040
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-11-19
收藏
得分:0 
有点乱a
2011-11-22 13:25
心灵百合
Rank: 5Rank: 5
等 级:职业侠客
帖 子:215
专家分:367
注 册:2011-3-30
收藏
得分:0 
你太会偷懒了,有些语句,写的好乱,不整洁。
2011-11-22 19:10
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
收藏
得分:0 
回复 4楼 cosam
我承认...  一天上3小时的网 两个半小时左右看书 其他时间就的敲代码 有时候连续几天都不敲
2011-11-22 19:12
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
收藏
得分:0 
回复 5楼 embed_xuel
我直接看了分配内存那条语句 反复调试了十几遍..都没去往看下,就算看了也没注意那点的细节好啦 我会该的!!
2011-11-22 19:16
离开天空的云
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
收藏
得分:0 
回复 7楼 心灵百合
比如说什么地方?
2011-11-22 19:17
快速回复:分配内存错误了...
数据加载中...
 
   



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

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