| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2109 人关注过本帖
标题:编译过了 运行老说某处内存不能为read
只看楼主 加入收藏
at445
Rank: 1
等 级:新手上路
帖 子:19
专家分:4
注 册:2011-6-14
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:22 
编译过了 运行老说某处内存不能为read
#include <stdio.h>
#include <stdlib.h>
typedef struct Lnode
{
        int data;
        struct Lnode *next;
}LinkList;
/***************************************************/
//函数申明
void InitList(LinkList *L);
void ListCreat(LinkList *L,int n);
//本地变量
LinkList *ListHead;

int main(int argc, char *argv[])
{
  ListCreat(ListHead,8);
  system("PAUSE");   
  return 0;
}
void ListCreat(LinkList *L,int n)
{
     LinkList *p;
     int i,j=0;
     InitList(L);
     printf("Begin to input data!!\n");
     printf("you gonna creat an list which have %d int data\n",n);
     for(i = n;i>0;--i)
     {
           p = (LinkList *)malloc(sizeof(LinkList));
           p->data = i;
           p->next = L->next;
          L->next = p;
     }
}     
     
void InitList(LinkList *L)
{
     printf("Initialization Begin!\n");
     printf("sizeof(Lnode)=%d\n",sizeof(LinkList));
     L = (LinkList *)malloc(sizeof(LinkList));
     L ->next = NULL;
     printf("Initialization End!\n");
}
搜索更多相关主题的帖子: 内存 申明 include system return 
2011-11-24 16:23
at445
Rank: 1
等 级:新手上路
帖 子:19
专家分:4
注 册:2011-6-14
收藏
得分:0 
注:
报错情况为"0x00401342"指令引用的“0x000000004”内存。该内存不能为“read”


后来发现是我在for循环中引用了malloc,哪位大侠能帮忙看看,感激不尽
2011-11-24 16:28
at445
Rank: 1
等 级:新手上路
帖 子:19
专家分:4
注 册:2011-6-14
收藏
得分:0 

跪求死因
2011-11-24 16:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
哪本书上教你这样使用动态分配内存的?

授人以渔,不授人以鱼。
2011-11-24 17:22
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 3楼 at445
我用手机看的,没有上机运行过,只有一个怀疑点,不知道对不对,这句
ListCreat(ListHead,8); ListHead是不是应该取地址啊,指针的指针

[ 本帖最后由 embed_xuel 于 2011-11-25 11:44 编辑 ]

总有那身价贱的人给作业贴回复完整的代码
2011-11-24 17:24
AHUSPEED紫枫
Rank: 1
等 级:新手上路
帖 子:11
专家分:3
注 册:2011-2-3
收藏
得分:0 
能运行吧
2011-11-24 18:38
at445
Rank: 1
等 级:新手上路
帖 子:19
专家分:4
注 册:2011-6-14
收藏
得分:0 
回复 4楼 TonyDeng
这样用有什么不妥?
该怎么改?
2011-11-25 11:02
at445
Rank: 1
等 级:新手上路
帖 子:19
专家分:4
注 册:2011-6-14
收藏
得分:0 
回复 5楼 embed_xuel
好像不是吧!语法没错的,应该是内存分配问题
2011-11-25 11:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
代码是你自己写的,自己解释一下那个for重复分配p的内存给L是什么意思?

授人以渔,不授人以鱼。
2011-11-25 11:10
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
5楼怀疑是正确的。InitList(L); L指向0,所以出错,自己好好想想,为什么没有初始化成功。

我们都在路上。。。。。
2011-11-25 11:34
快速回复:编译过了 运行老说某处内存不能为read
数据加载中...
 
   



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

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