나는이 열거 유형이 있습니다힙 손상 (...)
enum Cell { ALIVE='X', DEAD='O' };
을 그리고 나는 그것으로 배열 할당 :
h_board = (Cell*) malloc(width*height*sizeof(char));
내가이 일을 아니에요 가정을 잘못된 셀 값은 문자입니다. char 크기의 데이터를 유지하고 싶지만 가독성을 신경 쓰고 있습니다. 따라서 enum을 사용했습니다.
free(h_board);
에 예외가 발생합니다. 디버깅 모드에서 힙 손상 경고를 볼 수 있습니다. 할당하는 것보다 더 많은 메모리를 확보 할 수는 있지만 이유를 알 수는 없습니다. 나는 또한 free((char*)h_board);
문자 크기 할당 취소를 시행하려고 시도했지만 문제가 지속됩니다.
어떻게 해결할 수 있습니까? 모든
어딘가에 겹쳐 쓰고 있습니다. 몇 가지 코드를 보여 주시겠습니까? – cnicutar
h_board의 유형은 무엇입니까? 나는 그것이'Cell * '이라고 가정한다. Valgrind가 뭐라고 말하니? 이 문제를 재현하고 h_board에 어떤 일이 일어나는지 보여줄 수있는 최소한의 코드를 넣을 수 있습니까? – Eregrith
아직 아무것도 보이지 않지만 sizeof (char) 대신'sizeof (Cell)'을 사용하는 것이 좋습니다. – kennytm