MPLabX IDE를 사용하여 C32 v1.12가 포함 된 PIC32에 대해 다음 코드를 컴파일 중입니다. 코드는 find를 컴파일하지만 malloc()
에 매달려 있지만, malloc을 시도 할 때 어떤 크기의 것이 든 항상 문제는 아닙니다.PIC32 c32 1.12, Malloc hangs application
멈춤으로써 디버거가 응답하지 않고 응용 프로그램을 수동으로 다시 시작해야 계속 진행됩니다.
#define SAFE_DELETE(x) { if(x != NULL) { free(x); x=NULL ; } }
BOOL Test_Malloc() {
int *ptr = NULL ;
ptr = (int*)malloc(10 * sizeof (int)); // With a cast
if(ptr != NULL) {
SAFE_DELETE(ptr);
return TRUE ;
}
return FALSE ;
}
내 질문은;
- 어떻게하면 C32 v1.12가 포함 된 PIC32에 메모리를 malloc합니까?
무엇이'SAFE_DELETE'입니까? 100 % 확신 할 수있는 것은'malloc'은 멈추고 그 뒤에있는 코드는 아닌가? 프로젝트의 힙 크기는 어떻게 설정됩니까? 메모리 용량보다 4KB 이상 큰지 확인하십시오. –
@DavidSchwartz 예제 소스 코드에 SAFE_DELETE 정의를 추가했습니다. 예, 나는 코드가 malloc에 있지 않다고 확신합니다. SAFE_DELETE가 아닙니다. 프로젝트 힙 크기를 어떻게 확인합니까? –