«free» 태그된 질문

17
malloc 후에 해방되지 않으면 어떻게 되나요?
이것은 오랫동안 나를 귀찮게했던 것입니다. 우리는 모두 학교에서 (적어도 나는) 배운 모든 포인터를 자유롭게해야한다는 것을 배웁니다. 그래도 메모리를 해제하지 않는 실제 비용에 대해서는 약간 궁금합니다. malloc루프 나 스레드 실행의 일부에서 호출 될 때와 같이 명백한 경우 에는 메모리 누수가 없도록 해제하는 것이 매우 중요합니다. 그러나 다음 두 가지 예를 고려하십시오. …
538 c  malloc  free 

11
무료는 얼마나 많은 것을 무료로 알 수 있습니까?
C 프로그래밍에서, 당신은 free에 대한 인수로 당신이 좋아하는 어떤 종류의 포인터라도 전달할 수 있습니다. 그것은 할당 된 메모리의 크기를 어떻게 알 수 있습니까? 일부 함수에 포인터를 전달할 때마다 크기도 전달해야합니다 (즉, 10 요소의 배열은 배열의 크기를 알기 위해 매개 변수로 10을 받아야합니다). 그러나 크기를 전달할 필요는 없습니다. 무료 기능. 왜 …
384 c  size  pointers  free 

13
malloc () 및 free ()는 어떻게 작동합니까?
방법 malloc과 free작업 을 알고 싶습니다 . int main() { unsigned char *p = (unsigned char*)malloc(4*sizeof(unsigned char)); memset(p,0,4); strcpy((char*)p,"abcdabcd"); // **deliberately storing 8bytes** cout << p; free(p); // Obvious Crash, but I need how it works and why crash. cout << p; return 0; } 가능한 경우 대답이 메모리 수준에서 …

23
해제 후 변수를 NULL로 설정
우리 회사에는 메모리를 비운 후 변수를로 재설정하는 코딩 규칙이 NULL있습니다. 예를 들어 ... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } 위에 표시된 코드와 같은 경우로 설정하면 NULL아무런 의미가 없다고 생각합니다. 아니면 뭔가 빠졌습니까? 그러한 경우에 의미가 없다면, "품질 팀"에게 맡겨서이 …

10
ptr이 NULL 인 free (ptr)는 메모리를 손상 시킵니까?
이론적으로 나는 말할 수 있습니다 free(ptr); free(ptr); 이미 해제 된 메모리를 해제하기 때문에 메모리 손상입니다. 하지만 만약 free(ptr); ptr=NULL; free(ptr); OS가 정의되지 않은 방식으로 동작하기 때문에 무슨 일이 일어나고 있는지에 대한 실제 이론적 분석을 얻을 수 없습니다. 내가 무엇을하든,이 메모리 손상이 아닌가? NULL 포인터를 해제하는 것이 유효합니까?

8
"이중 사용 가능 또는 손상"오류를 추적하는 방법
내 (C ++) 프로그램을 실행하면이 오류와 함께 충돌합니다. * glibc 감지 됨 * ./load : 이중 사용 가능 또는 손상 (! prev) : 0x0000000000c6ed50 *** 오류를 어떻게 추적 할 수 있습니까? 나는 std::cout성공하지 않고 print ( ) 문을 사용해 보았습니다 . 수 gdb이 쉽게?
92 c++  c  debugging  free 

12
C의`free`가 해제 할 바이트 수를 사용하지 않는 이유는 무엇입니까?
그냥 확실하게합니다 : 알아요 않습니다 malloc및 free일반적으로 OS에서 메모리 청크를 할당하고 응용 프로그램에 메모리의 작은 제비를 소포 자체 관리를 수행하고 할당 된 바이트의 수를 추적 C 라이브러리에서 구현된다 . 이 질문은 어떻게 free does free to free 가 아닙니다 . 오히려 free애초에 이런 식으로 만들어진 이유를 알고 싶습니다 . 저수준 …

3
캐스트 프리의 반환 값을 무효로하는 이유는 무엇입니까?
C를 사용 하는 책 ( POSIX Threads by Butenhof, 1997)을 읽고 있는데 다음 줄을 보았습니다. (void)free(data); 여기, data할당 된 구조체에 대한 포인터입니다. data = malloc(sizeof(my_struct_t)); 결과 free가 캐스트 된 이유는 무엇 void입니까? C에 대한 나의 이해에서 이것은 두 가지 이유로 이해되지 않는 것 같습니다. 자유 함수는 이미 반환 void 코드가 …
82 c  casting  free  void  legacy-code 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.