24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2278  |  回复: 13

hkhuster

银虫 (初入文坛)

[求助] 求助,visual studio 2013编写C++程序中出现的问题,不胜感激。已有4人参与

大家好,本人毕业设计需要用C++编写程序,然后对程序运行写出的数据进行后处理,使用visual studio 2013编写程序后,错误列表没提示错误,然后就直接运行(未调试),但运行过程中出现图1的问题(程序没按预期运行完就弹出图1对话框),按图1提示选择调试后,出现图2的对话框,提示发生未处理的未处理的win32异常,选择“是”按钮后,出现图3提示,说有未经处理的异常:0xC0000005,读取位置0x00000000时发生访问冲突。百度一下说单击菜单栏“项目”,选择“属性”,选择“配置属性”下“链接器”中“系统”,改变“堆栈提交大小”,输入一个较大的值,但这样还是没用啊,因为毕业设计时间有点紧,请问各位如何解决这个问题呢?谢谢大家!

求助,visual studio 2013编写C++程序中出现的问题,不胜感激。
图1.jpg


求助,visual studio 2013编写C++程序中出现的问题,不胜感激。-1
图2.jpg


求助,visual studio 2013编写C++程序中出现的问题,不胜感激。-2
图3.jpg
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

me_yu

木虫 (正式写手)

上代码,上图有什么用呢,最好把整个项目放上来
听,寂静的夜里,田野里蛙声和虫鸣,好不欢快!
2楼2015-05-09 17:20:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nipan

新虫 (初入文坛)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
hkhuster: 金币+3, ★★★很有帮助 2015-05-11 14:01:06
读取位置0x00000000,显然变量的指针指向的内存是NULL。

这块内存不可读。

你得先为指针分配内存……
3楼2015-05-09 18:23:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hkhuster

银虫 (初入文坛)

引用回帖:
3楼: Originally posted by nipan at 2015-05-09 18:23:40
读取位置0x00000000,显然变量的指针指向的内存是NULL。

这块内存不可读。

你得先为指针分配内存……

但是我改变一些常变量的值,会有同样的问题,只是不一定是位置0x00000000,如0xC0000005:读取位置0x10769DD3时发生访问冲突,但都会出现图3左下角   density[(X+Nx)%Nx]        0x0000000 {???}这样的问号,如果是读取位置0x10769DD3时发生访问冲突,就会是        density[(X+Nx)%Nx]        0x10769dd3 {???},点开图3左下角density[(X+Nx)%Nx]的下拉列表,会出现“无法读取内存”,应该是说density[(X+Nx)%Nx]这个无法读取内存,这个问题具体如何解决呢?我不是学计算机的,只是接触过C++,具体的怎么改呢?是不是我用完指针后没有delete导致的啊?谢谢解答啦!
4楼2015-05-09 20:34:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hkhuster

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by me_yu at 2015-05-09 17:20:18
上代码,上图有什么用呢,最好把整个项目放上来

代码比较长,不太好直接放上来,你能留个邮箱吗?我发给你具体看看,希望能解决,谢谢啦!
5楼2015-05-09 20:38:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nipan

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by hkhuster at 2015-05-09 20:34:25
但是我改变一些常变量的值,会有同样的问题,只是不一定是位置0x00000000,如0xC0000005:读取位置0x10769DD3时发生访问冲突,但都会出现图3左下角   density        0x0000000 {???}这样的问号,如果是读取位置0x10769DD ...

如果没有记错的话,0XC0开头的内存地址是留给操作系统的。所以如果你读取这个位置,肯定会有问题。

density是数组还是vector?

如果是数组,你在开辟数组的时候,可以开大一些,比如10240000这么大,应该够用了。
如果是vector,则你可以使用resize函数,把vector的空间开的大些。(当然了,这种方式不属于很好的实践,但是随便写点程序的时候可以拿来用用。)
6楼2015-05-09 20:42:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hkhuster

银虫 (初入文坛)

引用回帖:
6楼: Originally posted by nipan at 2015-05-09 20:42:28
如果没有记错的话,0XC0开头的内存地址是留给操作系统的。所以如果你读取这个位置,肯定会有问题。

density是数组还是vector?

如果是数组,你在开辟数组的时候,可以开大一些,比如10240000这么大,应该够用 ...

density是一个二维数组吧,但定义的是double **density,二级指针,这个程序我是在别人基础上改动了一些初始值,我只知道程序实现的功能和整个模拟过程的算法步骤(这个程序是有关数值模拟方面的),具体其中涉及到的多级指针和new的用法,分配内存之类就很模糊,你方便留个邮箱吗?我能把cpp文件发给你帮忙看一下吗?
7楼2015-05-09 21:03:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Chris_D

银虫 (初入文坛)

【答案】应助回帖


感谢参与,应助指数 +1
hkhuster: 金币+1, 有帮助 2015-05-11 14:02:39
多数原因是申请了指针没有初始化给它申请空间吧,这样导致指针访问了错误的地址。。。
8楼2015-05-10 00:27:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

karon1988

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
楼主你应该自己先通过调试找到问题。

你这样描述问题别人也是无能为力的

[ 发自小木虫客户端 ]
9楼2015-05-10 08:36:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

linmingpei

金虫 (小有名气)


【答案】应助回帖


感谢参与,应助指数 +1
hkhuster: 金币+1, 有帮助 2015-05-11 14:02:47
根据你的描述,应该是没有被指针数组分配没错,你如果动态分配的是二维数组指针,必须给每一个指针分配内存,用完后再逐一删除指针

[ 发自手机版 http://muchong.com/3g ]
10楼2015-05-10 09:20:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hkhuster 的主题更新
信息提示
请填处理意见