C++ “中未处理的异常”;msvcp90d.dll“;?

C++ “中未处理的异常”;msvcp90d.dll“;?,c++,unhandled-exception,C++,Unhandled Exception,我是一个相当新的程序员,所以请容忍我在这方面。我正在使用VC++2008 我从我的程序中得到此错误: z projection.exe中0x68bce2ba(msvcp90d.dll)处未处理的异常:0xC0000005:访问冲突写入位置0x00630067 然后,电脑把我带到这一页代码上,这一页代码看起来相当混乱,我肯定没有写。它指出这段代码是违规代码(maerked by“ 我是一个相当新的程序员,所以请 请容忍我这件事 好吧,我保证不会取笑你;) 然后,电脑把我带到了这个问题上 代码页 您

我是一个相当新的程序员,所以请容忍我在这方面。我正在使用VC++2008

我从我的程序中得到此错误:

z projection.exe中0x68bce2ba(msvcp90d.dll)处未处理的异常:0xC0000005:访问冲突写入位置0x00630067

然后,电脑把我带到这一页代码上,这一页代码看起来相当混乱,我肯定没有写。它指出这段代码是违规代码(maerked by“ 我是一个相当新的程序员,所以请 请容忍我这件事

好吧,我保证不会取笑你;)

然后,电脑把我带到了这个问题上 代码页

您的意思可能是Visual Studio调试器将您带到了这一行。您可以使用“堆栈跟踪”功能查找出错的确切位置:单击“菜单调试->窗口->调用堆栈”

但是,我在您的代码中找不到任何错误。这个简单的应用程序工作得非常完美:

int main()
{

    std::stringstream index;
    std::string fileName = "";
    index.str("");//
    int stage = 1;
    index << std::setw( 3 ) << std::setfill( '0' ) << stage - 1; 
    fileName = "positive Z topography-" + index.str() + ".txt";
    std::cout << "Done with test.\n";
    return 0;
}
intmain()
{
std::stringstream索引;
std::string fileName=“”;
指数.str(“”)//
int阶段=1;
指数
我是一个相当新的程序员,所以请
请容忍我这件事

好吧,我保证不会取笑你;)

然后,电脑把我带到了这个问题上 代码页

您的意思可能是Visual Studio调试器将您带到了这一行。您可以使用“堆栈跟踪”功能查找出错的确切位置:单击“菜单调试->窗口->调用堆栈”

但是,我在您的代码中找不到任何错误。这个简单的应用程序工作得非常完美:

int main()
{

    std::stringstream index;
    std::string fileName = "";
    index.str("");//
    int stage = 1;
    index << std::setw( 3 ) << std::setfill( '0' ) << stage - 1; 
    fileName = "positive Z topography-" + index.str() + ".txt";
    std::cout << "Done with test.\n";
    return 0;
}
intmain()
{
std::stringstream索引;
std::string fileName=“”;
指数.str(“”)//
int阶段=1;

index即使最后一个区块出现问题,也不一定意味着循环中没有错误。如果你在任何数组上超出了界限,你可能直到以后才得到任何关于它的指示

在第一个内部
while
循环中

while ((k != dim) && partMap[dim * ((dim - 1 - k) + dim * i) + j] < stage) 
    k++;

对于任何
j
,它将超出
positiveproject
的范围,因为您尝试使用
dim*dim+j
进行索引,并且它只有维度
dim*dim

,即使最后一个块出现问题并不一定意味着循环中没有错误在您的任何阵列上,您可能直到稍后才获得任何关于它的指示

在第一个内部
while
循环中

while ((k != dim) && partMap[dim * ((dim - 1 - k) + dim * i) + j] < stage) 
    k++;

positiveproject
中,对于任何
j
来说,哪一个将超出范围,因为您尝试使用
dim*dim+j
进行索引,并且它只有维度
dim*dim

这是从您的程序复制的代码吗?这几乎是从我的程序复制的,除了我声明了stringstream index和string filename ear之外没有变量需要担心,关于变量你需要知道的就是阶段=1(我说过)。上面的大部分代码不是我的。我没有第一条线索知道它为什么在那里或者它有什么问题,只是我的调试器说它不好……这段代码是类的一部分,索引和文件名是成员吗?这是我能想到的索引的成员数据无效的唯一原因。除非你在函数前面有代码破坏了stack…你能发布整个例程吗?这是从你的程序复制的代码吗?这几乎是从我的程序复制的,除了我之前声明的stringstream索引和字符串文件名。没有变量可担心,关于变量,你需要知道的只是stage=1(我声明)。上面的大部分代码不是我的。我没有第一条线索知道它为什么在那里或者它有什么问题,只是我的调试器说它不好……这段代码是类的一部分,索引和文件名是成员吗?这是我能想到的索引的成员数据无效的唯一原因。除非你在函数前面有代码破坏了stack…你能发布整个程序吗?很好!我也这么怀疑,但没有精力遍历循环。嗯…看起来你解决了我的问题,尽管这不是我所期望的。非常感谢!是的,你说得对。事实上,我在处理和粘贴另一个p的代码时忽略了改变变量rogram(您可以猜测其他程序名,x投影,y投影).程序现在运行…我只需要验证输出。太好了!很高兴为您服务。太好了!我也这么怀疑,但没有精力遍历循环。嗯…看起来您解决了我的问题,尽管这不是我所期望的。非常感谢!是的,您的权利。实际上,我忽略了更改w周围的变量当我从另一个程序中复制并粘贴这段代码时(你可以猜到其他程序名,x投影,y投影)。程序现在运行…我只需要验证输出。太好了!很高兴为您服务。+1初学者没有意识到看到调用堆栈的好处+1初学者没有意识到看到调用堆栈的好处
while ((k != dim) && partMap[dim * ((dim - 1 - k) + dim * i) + j] < stage) 
    k++;
positiveProjection[dim * k + j] = k;