| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2975 人关注过本帖
标题:malloc函数申请内存失败、?
取消只看楼主 加入收藏
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
收藏
已结贴  问题点数:20 回复次数:4 
malloc函数申请内存失败、?
#include <stdio.h>
#include <stdlib.h>

typedef struct OLNode
{
    int row,col;
    int vaule;
    struct OLNode * right, * down;
}OLNode,*OLink;

typedef struct
{
    OLink * row_head,* col_head;
    int m,n,len;
}CrossList;

void CreateCrossList(CrossList *M)
{
    int m,n,t,k;
    int i,j,e;
    OLink p,q;
    printf("请输入行的个数m,列的个数n,数据元素的总个数t:\n");
    scanf("%d%d%d",&m,&n,&t);
    M->m=m;
    M->n=n;
    M->len=t;
    if(!(M->row_head=(OLink*)malloc((m+1)*sizeof(OLink))));
    {
        printf("申请行失败!\n");
        exit(0);
    }
    if(!(M->row_head=(OLink*)malloc((n+1)*sizeof(OLink))));
    {
        printf("申请列失败!\n");
        exit(0);
    }
    for(k=1;k<m+1;k++)
        M->row_head[k]=NULL;
    for(k=1;k<n+1;k++)
        M->col_head[k]=NULL;
    printf("请输入元素的行下标,列下标,值:\n");
    for(scanf("%d%d%d",&i,&j,&e);i!=0;scanf("%d%d%d",&i,&j,&e))
    {
        if(!(p=(OLNode*)malloc(sizeof(OLNode))));
        exit(0);
        p->row=i;
        p->col=j;
        p->vaule=e;
        if(M->row_head[i]==NULL)
            M->row_head[i]=p;
        else
        {
            q=M->row_head[i];
            while(q->right!=NULL&&q->right->col<j)
                q=q->right;
            p->right=q->right;
            q->right=p;
        }
        if(M->col_head[i]==NULL)
            M->col_head[j]=p;
        else
        {
            q=M->col_head[j];
            while(q->down!=NULL&&q->down->col<i)
                q=q->down;
            p->down=q->down;
            q->down=p;
        }
    }
}

int main()
{
    CrossList M;
    CreateCrossList(&M);
    return 0;
}

我感觉代码没有访问越界
搜索更多相关主题的帖子: malloc 申请 int down NULL 
2017-10-30 14:14
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 2楼 grmmylbs
??什么意思?
2017-10-30 15:00
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 4楼 吹水佬
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int *p;
    p=(int *)malloc(sizeof(int));
    if(!p)
    {
        printf("失败");
        exit(0);
    }
    return 0;
}
换一段代码没问题。
2017-10-30 19:10
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 6楼 吹水佬
额, 我不知道怎么改,,您能帮我改一下吗?
2017-10-30 20:35
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 8楼 吹水佬
是的。
2017-10-30 21:12
快速回复:malloc函数申请内存失败、?
数据加载中...
 
   



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

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