玩游戏弹出到桌面玩到一半,突然弹出什么内存不能为written怎么办

欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 1262 人关注过本帖
标题:新手求助!运行C语言程序时,出现该内存不能为“written”!是哪里出问题? ...
来 自:福建
等 级:论坛游侠
帖 子:50
专家分:199
结帖率:100%
&&已结贴√
&&问题点数:20&&回复次数:23&&&
新手求助!运行C语言程序时,出现该内存不能为“written”!是哪里出问题?谢谢!
以下程序编译没问题,运行时出现“0x77c160b4”指令引用的“0x”内存。该内存不能为“written”。反复检查代码,不知道哪里出错!还是其他原因?希望好心人帮忙解答!
具体代码如下:
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
#include &stdbool.h&
#define&&&BUF_LEN&&&&&&101
#define&&&CAP&&&&&&&&&&&&5
int main(void)
&&& char buf[BUF_LEN];
&&& bool sorted =
&&& unsigned int count = 0;
&&& char *pTemp = NULL;
&&& unsigned int capacity = CAP;
&&& char *pS = (char*)calloc(capacity, sizeof(char));
&&& if(!pS)
&&&&&&&&printf(&内存不足!\n&);
&&&&&&&&return 1;
&&& printf(&这是可以读入任意个英语谚语,并将它们以字长顺序由短到长地输出的程序!\n&);
&&& printf(&最后以 END 为结束标志!\n&);
&&& printf(&注意:输入的每条英语谚语不超过 %d 个字节(包括空格、标点符号),不然会少一截!\n&, BUF_LEN - 1);
&&& while(true)
&&&&&&&&char buf[BUF_LEN] = &\0&;
&&&&&&&&printf(&请输入第 %u 条英语谚语(按 Enter 结束输入):\n&, count + 1);
&&&&&&&&printf(&\t%u&.\t &, count + 1);
&&&&&&&&fgets(buf, BUF_LEN, stdin);
&&&&&&&&if(strcmp(buf, &END\n&) == 0)
&&&&&&&&else
&&&&&&&&&&&&pS[count] = (char*)malloc(BUF_LEN);
&&&&&&&&&&&&if(!pS[count])
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& printf(&申请内存不成功!\n&);
&&&&&&&&&&&&&&& return 2;
&&&&&&&&&&&&}
&&&&&&&&&&&&
&&&&&&&&&&&&strcpy(pS[count], buf);
&&&&&&&&&&&&++
&&&&&&&&if(count == capacity)
&&&&&&&&&&&&capacity += CAP;
&&&&&&&&&&&&pTemp = (char*)realloc(pS, capacity * sizeof(char));
&&&&&&&&&&&&if(!pTemp)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& printf(&没有分配内存!\n&);
&&&&&&&&&&&&&&& return 3;
&&&&&&&&&&&&}
&&&&&&&&&&&&
&&&&&&&&&&&&pS = pT
&&& while(!sorted)
&&&&&&&&sorted =
&&&&&&&&int i = 0;
&&&&&&&&for(i = 0; i & count - 1; ++i)
&&&&&&&&&&&&if(strlen(pS[i]) & strlen(pS[i + 1]))
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& sorted =
&&&&&&&&&&&&&&& pTemp = pS[i];
&&&&&&&&&&&&&&& pS[i] = pS[i + 1];
&&&&&&&&&&&&&&& pS[i + 1] = pT
&&&&&&&&&&&&}
&&& printf(&\n以下是将你输入的英语谚语以字长由短到长的输出!\n&);
&&& int j = 0;
&&& for(j = 0; j & ++j)
&&&&&&&&printf(&\t%d&.\t%s\n&, j + 1, pS[j]);
&&&&&&&&free(pS[j]);
&&&&&&&&pS[j] = NULL;
&&& free(pS);
&&& pS = NULL;
&&& return 0;
[此贴子已经被作者于 08:05编辑过]
来 自:不是这样
等 级:版主
威 望:22
帖 子:1560
专家分:4998
那说明你对值为NULL的指针进行了解应用。
另外能不能别认为可以编译就是正确的,C语言,能编译的错误多天上去了。
09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
来 自:不是这样
等 级:版主
威 望:22
帖 子:1560
专家分:4998
程序代码:&&& for(j = <font color=#; j & ++j)
&&&&&&&&printf(&\t%d&.\t%s\n&, j + <font color=#, pS[j]);
&&&&&&&&free(pS[j]);//明显的错误,
&&&&&&&&pS[j] = NULL;//明显的错误
09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
来 自:福建
等 级:论坛游侠
帖 子:50
专家分:199
回复 3楼 renkejun1942
那怎么修改?才学C语言。
还在学习过程中,欢迎指教!
来 自:不是这样
等 级:版主
威 望:22
帖 子:1560
专家分:4998
程序代码:&&& for(j = <font color=#; j & ++j)
&&&&&&&&printf(&\t%d&.\t%s\n&, j + <font color=#, pS[j]);
&&&&&&&&free(pS[j]);
&&&&&&&&pS[j] = NULL;
程序代码:&&& for(j = <font color=#; j & ++j)
&&&&&&&&printf(&\t%d&.\t%s\n&, j + <font color=#, pS[j]);
&&&&&&&&free(pS);
&&&&&&&&pS = NULL;
09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
来 自:福建
等 级:论坛游侠
帖 子:50
专家分:199
回复 5楼 renkejun1942
我试了,程序还是出现该内存不能为“written”!应该不是这里问题吧。我书上也是这样释放内存。
还在学习过程中,欢迎指教!
来 自:不是这样
等 级:版主
威 望:22
帖 子:1560
专家分:4998
回复 6楼 zmf
你看的书上也是这么写的?跟你写的一样?
如果是的话,那么……你该把那书烧了。
[此贴子已经被作者于 12:53编辑过]
09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
来 自:福建
等 级:论坛游侠
帖 子:50
专家分:199
回复 7楼 renkejun1942
肯定是其它问题!
还在学习过程中,欢迎指教!
等 级:版主
威 望:114
帖 子:4319
专家分:16806
看看执行到哪句时抛出异常
来 自:福建
等 级:论坛游侠
帖 子:50
专家分:199
回复 9楼 吹水佬
执行到输入第一个字符串后,回车,就出现该内存不能为“written”!
还在学习过程中,欢迎指教!
版权所有,并保留所有权利。
Powered by , Processed in 0.050139 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved玩游戏弹出内存不能为WRITTEN 和系统有关吗
全部答案(共1个回答)
你先去试试1901的办法~不行就去试试瑞瑞的~再不行~没辙了....
运气来了~谁~也挡不住哦~
可能因为你装了一些软件,把某些.dll文件给替换了,以至于运行某些程序,需要调到相关.dll文件而报错。可以按照下面方法解决。
(1)开始-运行:输入cmd,按...
关机时出现错误提示是各种程序之间发生了冲突,建议你不要同时打开太多的程序,关机时一个一个的关闭就会打架,你关机时暂时关闭各种带监控的程序就会好一些,有时是IE加...
电脑出现:内存不能为written,这是你下载的“软件”与电脑内存有“冲突”!原因总结起来,有以下方面,偶尔出现,点:取消,即可!(答案原创,本答案原作者:力王...
把内存拔下来,用内存用橡皮擦擦一下,再装上
绒毛穿刺怎样的时候做是比较好的呢?这个检查是检查怎样的内容的呢?
答: DDR技术就使我们感受到提高数据包个数的好处,它令内存带宽疯狂地提升一倍
答: 比如你用超级豪华的配置,但是只是上了一个256的内存,这个时候你的整个电脑的性能就取决于你的内存了,加上内存性能马上提上去
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415

我要回帖

更多关于 玩游戏全屏弹出到桌面 的文章

 

随机推荐