행렬의 덧셈(함수 내 배열 크기와 함께 초기화)

2024. 12. 26. 11:17·공부/Code Cata

#include <string>
#include <vector>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) 
{
    vector<vector<int>> answer;
    
    for(int y = 0; y < arr1.size(); y++)
    {
        for(int x = 0; x < arr1[y].size(); x++)
        {
            answer[y][x] = arr1[y][x] + arr2[y][x];
        }
    }
    
    return answer;
}

처음 코드를 작성했을 때, 오류가 발생하여 IDE에서 디버깅을 해보았다.

 

유효하지 않은 매개변수가 함수에 전달되어 런타임 중에 예외되어 처리되지 않고 에러를 발생했다고 한다.

answer[y][x] = arr1[y][x] + arr2[y][x]; 구문을 실행할 때, 에러가 발생된 것을 확인했고 원인은 answer의 크기가 설정되지 않은 상태로  초기화 되어있어,  2차원 배열의 공간이 없는데 인덱스 위치에 값을 집어넣어서 생긴 문제로 보인다.

 

#include <string>
#include <vector>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) 
{
   //answer 2차원 배열 크기 설정.
    vector<vector<int>> answer(arr1.size(), vector<int>(arr1[0].size(), 0));
    
    for(int y = 0; y < arr1.size(); y++)
    {
        for(int x = 0; x < arr1[y].size(); x++)
        {
            answer[y][x] = arr1[y][x] + arr2[y][x];
        }
    }
    
    return answer;
}

위와 같이 크기와 함께 '0'으로 초기화를 시켰고 문제를 해결하였다.

'공부 > Code Cata' 카테고리의 다른 글

비트 AND연산 / std::toupper / std::tolower  (0) 2024.12.30
3진법 뒤집기  (1) 2024.12.27
Quick Sort  (0) 2024.12.23
std::sqrt  (0) 2024.12.22
약수의 개수가 홀수인가?  (0) 2024.12.22
'공부/Code Cata' 카테고리의 다른 글
  • 비트 AND연산 / std::toupper / std::tolower
  • 3진법 뒤집기
  • Quick Sort
  • std::sqrt
동그래님
동그래님
  • 동그래님
    개발자 동그래
    동그래님
  • 전체
    오늘
    어제
    • 분류 전체보기 (210)
      • 공부 (51)
        • Code Cata (50)
      • 내배캠 (151)
        • TIL (50)
        • C++ (37)
        • Unreal Engine (48)
        • GAS(Gameplay Ability System.. (16)
      • Project (7)
        • Gunfire Paragon (5)
        • Arena Fighters (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    동그래님
    행렬의 덧셈(함수 내 배열 크기와 함께 초기화)
    상단으로

    티스토리툴바