C语言创建单链表的创建 运行显示该内存不能为read

c语言编写程序编译通过,运行后提示内存不能read,求大神指导。_百度知道
c语言编写程序编译通过,运行后提示内存不能read,求大神指导。
我有更好的答案
所以检查代码的时候,要检查指针是否合法,重点要看指针的初始化,以及指针每一次赋值,尤其是函数返回值赋值为指针值。 比如 动态分配的malloc, 打开文件的fopen等等这种一般是由于野指针导致的。比如读取了NULL指针上的值
软件工程师
不贴代码,不贴打印 怎么回答。。。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C语言单链表的一个问题,程序运行后出现“已停止工作”
[问题点数:40分]
C语言单链表的一个问题,程序运行后出现“已停止工作”
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年 总版技术专家分年内排行榜第二
2013年 总版技术专家分年内排行榜第三
匿名用户不能发表回复!|c语言运行时提示“内存不能为read”,求帮助调试_百度知道
c语言运行时提示“内存不能为read”,求帮助调试
qq:,在线等
我有更好的答案
写很正常。细细检查你的指针,不能读&#47内存不能读,这问题吧,一般是你的指针指向了不该指向的位置,看看它们有没有因为你的大意而失去控制。细节决定成败
执行完strcpy函数,指针就不受控制了
检查你的strcpy(char *dst, const char *src)中,第一个参数是否分配了空间,第2个参数是否有结束标识'\0'
采纳率:55%
这种情况经常出现一般都是指针发生了错误吧你可以一步一步的debug也可以试着加几个断点,看看运行到哪里出的错然后做合适的修改
CNM ,求人帮忙还设置密码
为您推荐:
其他类似问题
您可能关注的内容
内存的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。c语言运行时提示“内存不能为read”,求帮助调试_百度知道
c语言运行时提示“内存不能为read”,求帮助调试
#include &stdafx.h&
int main(int argc, char* argv[])
int a[10]={5,7,9,5,2,5,7,9,8,2},n=10;
for(int i=0; i&n; i ++)
for(int j=i+1;j&n;i++)
if(a[i]==a[j])
a[i-k]=a[i];
我有更好的答案
for(i=0; i&n; i ++)
试试! else
k++; } n=n-k,8,2,5; i&lt,2},n=10; i ++) {
for(int j=i+1;int main(这里改成a[j-k]=a[i]#include &quot, a[i]); printf(&\n; int k=0;
for(int i=0,7,5,9;%4d&,9;j&n;i++)
if(a[i]==a[j])
a[i-k]=a[i]; /&#47,7, char* argv[]){
int a[10]={5;stdafx.h&quot
采纳率:29%
不是找重复数?void repetition(int number){
int array[10] = {0};
int i = 0,flag = 0, array[flag]); j & i-1;
while (number != 0) {
array[i++] = number % 10;= 10;
for (int j = 0;有重复数:%d&; j++) {
if (array[i -1] == array[j]) {
if (flag != 0) {
number &#47
怎么把我的代码修改?
你的a[i-k]是个负数,而且我感觉你算法也不对
错误很明显,内层for循环里i的值会小于k的值,a[i-k]就报运行时错了
怎么修改?
要说明你要做什么
就是想删除数组里重复的数,比如原数组是{2,2,3,4,4,5},输出就是{2,3,4,5}。
为您推荐:
其他类似问题
内存的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。您的位置:&&推荐的文章
c语言实现一个简单链表插入,调试没错,但运行时提示内存不能为read,为什么,求各位大侠帮帮!
c语言实现一个简单链表插入,调试没错,但运行时提示内存不能为read,为什么,求各位大侠帮帮!
相关说明:
list-&next=next=p;q是野指针,程序出错;data= if(i==1){
/&#47.h&#include& } }/**在链表list的第loc个位置插入值为val的数*/void insertlink(LN LNode p,q,h=NULL;j++){
/&#47,int loc){ LNode ptr,使其成为ptr的前一个结点
printf(&the error loc!&);
ptr-&next=list-&next,e;n;i&6;i++){
//ptr为要插入的新节点 int i=0,j=0; i= LN p=f;i++){
scanf(&,list1-&data);
list1=list1-&表头要保留:%d\n&%d&quot,下面是调好的代码#include&//loc-2;
//%d后面不用空格
p=(LNode )malloc(sizeof(LNode));
p-&data=e;
if(,list1;
/注意不要写成f++了。
} insertlink(p,55;&#47把错误的信息写到注释中了;
f=f-&gt,此时ptr为头结点
ptr-&next=
list1= }else if(i==2){
/如果这里不增加q=p,那么下一句q-&gt,2);
return 0;i应等于loc list1=
ptr=(LNode)malloc(sizeof(LNode)),移动list,使其成为ptr的前一个结点
if(list-&next)
list=list-&/移动
list-&next= }} for(i=0;next=NULL; for(i=0;i&/其他节点插入
for(j=0;j&
//i&5;i++){
printf(&%d &.h&typedef struct node{ struct node*data);
ptr-&/用list1当表头 }}int main(){ int i=0;
LNode f=linktable(5);** *创建一个链表,表长为n * */,&e);/第一个......其他节点插入 98
for(j=093 /********************************************************************************************************* 94
* 错误1:开辟空间时应当为malloc(sizeof(struct node)) 95
* 错误2:main函数中注意for循环结束后f已经指向链表末尾了。 96
* 错误3..;108
///移动list!&/移动list.其余的代码;104
ptr-&next=list-&next..,使其成为ptr的前一个结点102
printf(&quot,使其成为ptr的前一个结点 99 100
if(list-&next)101
list=list-&107
list-&next=j&loc-2;j++){
&#47,最后一个else中应当这样;);
&#47:插入函数中
我想应该是这样:typedef struct node{ struct node*}LNode,* LN定义的LNode这个结点应该是结点的结构体数据,定义的LNode的指针应该是是指向链表的。构造新结点时应该是:p=(LNode)malloc(sizeof(LNode));应该就对了。
主要有两个BUG1.
函数声明错了void insertlink(LNode& list,int val,int loc);2. sizeof(LNode)
sizeof(node)
typedef struct node{ struct node*}* LN/** *创建一个链表,表长为n * */LNode linktable(int n){ int i=0,e; LNode p,q,h=NULL; for(i=0;i&n;i++){
scanf(&%d &,&e);
p=(LNode )malloc(sizeof(node));
p-&data=e;
p-&next=NULL;
q-&next=p;
q=p; }}/**在链表list的第loc个位置插入值为val的数*/void insertlink(LNode & list,int val,int loc){ LNode ptr,list1;
//ptr为要插入的新节点 list1=
ptr=(LNode)malloc(sizeof(node));
ptr-&data=
for(int i=0; i& i++)
// 将 list 移动到低 loc 项, 如果 list 不够长,在尾部追加 {
if( list && list-&next )
list = list-&
else } ptr-&next = list ? list-&next : NULL; list =}int main(){ int i=0; LNode h,f=linktable(5); h = for(i=0;i&5;i++){
printf(&%d &,f-&data);
if( f-&next )
//注意不要写成f++了。
else } insertlink(f-&next,55,2);
return 0;}...
c语言实现一个简单链表插入,调试没错,但运行时提示内存不能为read,为什么,求各位大侠帮帮!把错误...
链表的操作,我运行的时候系统提示内存不能为read...郁闷。求求各位大虾了 。错误的地方只是一个使...
while (current != NULL) { current = head = c...
#include &stdio.h&#include &stdlib.h&struct node {...
/* 在单链表中查找数据域值为x的节点,h为指向单链表头节点的指针,x为待...03-07 c语言实...
while((q-&rlink!=NULL)&&(p-&element!=data))应该为whil...
“我感觉是每次的head改变后,原函数不认识新head”这句话啥意思? node *p= ...
给链表赋值
你的这段代码应该是前插法建立单链表吧,有几处错误: q=head=NULL;//初始建立head应该...
购物网站热门产品排行

我要回帖

更多关于 创建带头结点的单链表 的文章

 

随机推荐