簡體   English   中英

Project1.exe中0x00007FFCA550A839的未處理異常:Microsoft C ++異常:內存位置0x0000002F82CFEF60的std :: bad_alloc。 發生了

[英]Unhandled exception at 0x00007FFCA550A839 in Project1.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0000002F82CFEF60. occurred

我正在嘗試編寫一個使用opencv從圖像讀取像素值並將其打印在控制台或其他窗口中的程序。 我的程序已成功編譯並鏈接,但是在Visual stdio中運行該程序時,出現以下錯誤。

“發生了Project1.exe中0x00007FFCA550A839的未處理異常:Microsoft C ++異常:內存位置0x0000002F82CFEF60處的std :: bad_alloc。”

我已經嘗試直接運行可執行文件。 然后我收到此錯誤消息“調試錯誤。about()已被調用”。 這是我的main.cpp代碼

'''C ++

    #include <stdlib.h>
    #include <SDL.h>
    #include <opencv2/opencv.hpp>
    #include <iostream>
    #include <vector>

using namespace cv;

int retColorRed(int x, int y)
{
    Mat img = imread("s1.jpg", 0);
    return img.at<Vec3d>(x, y)[0];
}

int retColorGreen(int x, int y)
{
    Mat img = imread("s1.jpg", 0);
    return img.at<Vec3b>(x, y)[1];
}

int retColorBlue(int x, int y)
{
    Mat img = imread("s1.jpg", 0);
    return img.at<Vec3b>(x, y)[2];
}



    #define WINDOW_WIDTH 200
    #define WINDOW_HEIGHT 300

    int main(int argc, char* args[]) {
        SDL_Event event;
        SDL_Renderer* renderer;
        SDL_Window* window;

        SDL_Init(SDL_INIT_VIDEO);
        SDL_CreateWindowAndRenderer(WINDOW_WIDTH, WINDOW_HEIGHT, 0,&window, &renderer);
        SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0);
        SDL_RenderClear(renderer);


        int width = WINDOW_WIDTH;
        int height = WINDOW_HEIGHT;
        int horizonaltIter = 0, virticalIter = 0;

        while (virticalIter <= height)
        {
            while (horizonaltIter <= width) {
                int red = retColorRed(horizonaltIter,virticalIter);
                int green = retColorGreen(horizonaltIter, virticalIter);
                int blue = retColorBlue(horizonaltIter, virticalIter);
                SDL_SetRenderDrawColor(renderer, red, green, blue, 255);
                SDL_RenderDrawPoint(renderer, horizonaltIter, virticalIter);
                SDL_RenderPresent(renderer);
                horizonaltIter++;
            }
            virticalIter++;
        }



        while (1) {
            if (SDL_PollEvent(&event) && event.type == SDL_QUIT)
                break;
        }
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);
    SDL_Quit();
    return EXIT_SUCCESS;
}

“””

這是Visual Studio ide中顯示的錯誤消息

“發生了Project1.exe中0x00007FFCA550A839的未處理異常:Microsoft C ++異常:內存位置0x000000A6BD0FF1A0處的std :: bad_alloc。”

while (horizonaltIter <= height) {更改為while (horizonaltIter <= width) {並且它應該起作用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM