ljh1615   4년 전

안녕하세요 문제를 풀다가 모르는 것이 생겨 질문드립니다

new 동적할당을 해서 배열을 생성하고, 그 배열은  unsigned int 타입으로 설정되었습니다.

그러나 최대 4억까지 입력이 되어야 하는데 (배열의 각 원소에) 실제로 signed int(2억)에서 받더군요


현재 summed area array 혹은 적분 이미지를 만들고 있는데 

이것이 동적할당의 문제인지 어떻게 된건지 잘 모르겠습니다. 


원래 이런 문제가 생기기도 하나요..?


unsigned int 로 범위를 늘려서 받을 수 있는 방법이 무엇인지 아니면 원인이 무엇인지 알려주시면 감사하겠습니다

unsigned int* image = new unsigned int[WIDTH*HEIGHT]; 선언은 이렇게 했습니다

djm03178   4년 전

그렇게만 말씀하시면 알 수가 없고, 전체 코드를 봐야 합니다.

특히 입력을 받는 부분, 출력을 하는 부분을 반드시 봐야만 제대로 한 것인지 알 수가 있습니다.

djm03178   4년 전

그리고 4바이트 unsigned int는 4억이 아니라 40억 이상까지 가능하고, signed int는 2억이 아니라 20억 이상이 가능합니다.

djm03178   4년 전

프로그램이라는 실행 흐름에 있어 한 군데라도 삐끗하면 전혀 다른 결과가 나오기 때문에 아무리 특정한 곳이 의심스러워보여도 항상 전체를 주시해야 합니다.

new로 동적할당한 unsigned int에는 입력을 제대로 받을 수 없는가?에 대한 답만 말씀드리자면, 아닙니다. https://ideone.com/g4b3Eu

ljh1615   4년 전

아 ...출력에서 임시값 (int)로 출력하고 있었네요...해결했습니다@

댓글을 작성하려면 로그인해야 합니다.