나는이 두 가지 간단한 기능을 가지고 있습니다. 나는 func1이 객체를 참조로 전달 했으므로 좋은 해결책이라고 생각했습니다. 내 교과서는 최상의 솔루션에 대한 답변으로 func2을 부여했습니다. 이것은 heapstr의 할당을 해제하지 않았기 때문입니까? 주에서 heapstr을 선언하고 함수에 전달하면 나중에 삭제할 수 있습니까? 이 교과서 예제이기 때문에
그래서 저는 1 년 동안 쓰고있는 30k 라인 프로그램을 가지고 있습니다. 기본적으로 비 정규화 된 데이터와 표준화되지 않은 데이터를 여러 소스에서 모으고 소스를 표준화 한 후 모든 것을 일치시킵니다. 나는 모든 것을 주문 된 사전으로 작성했습니다. 이것은 열을 이름 붙이고 변경 가능하게 유지할 수있게하여 코드가 엉망진창에 걸쳐 값을 할당/수정할 수 있으므
이걸 발견했는데 왜 루프에 변수에 메모리가 할당되어 있는지 궁금합니다 (.... 0x20;). 변수가 단순히 공백으로 채워진 것처럼 보입니다. 하지만 바이트 변수를 크기로 초기화 할 때 왜이 작업을 수행할까요? long fileByteLength = package.Properties.Length;
byte[] fileContent = new byte[fi
많은 양을 할당합니다. 적어도 리눅스에서. 나는 가상 메모리의 엄청난 금액을 할당 할 100 GB의 말을 할 수 있습니다. 그래서 다음과 같이 썼습니다 : void* virtual_memory = malloc(100 gb int);
그러나 반환 된 포인터는 NULL입니다. 이 코드는 64 비트 Ubuntu 가상 컴퓨터에서 실행됩니다. 내가 뭘 잘못하고
Allocator이 표준 라이브러리 할당 자 인터페이스를 준수하는 경우 null 포인터로 std::allocator_traits<Allocator>::deallocate을 호출해도 안전합니까? Allocator이 std::allocator 일 때 (결국 궁극적으로 delete을 사용하기 때문에) 알고 있지만, Allocator이 클라이언트 제공 클래스 인
주소 버스 및 24 비트 데이터 버스가있는 프로세서 XYZ를 고려하십시오. XYZ는 가상 메모리 및 요구 페이징을 지원합니다. 논리적에서 물리적 주소 변환의 경우, 처음 12 개의 최상위 주소 비트가 페이지 번호에 해당하고 마지막 12 비트가 오프셋으로 사용됩니다. a) XYZ에서 지원할 수있는 실제 메모리 페이지의 최대 수는 얼마입니까? b) 그리고 메모
운영 체제 자체에는 블록 I/O 캐시 및 프로세스 제어 블록과 같이 액세스해야하는 리소스가 있습니다. 가상 메모리 주소 또는 실제 메모리 주소를 사용합니까? 거의 대부분 비어있는 경우에도 목적을 위해 많은 수의 물리적 메모리를 유지할 필요가 없기 때문에 전자가되어야한다고 생각합니다. 페이지 테이블/가상 메모리의 메커니즘은 OS가 실제로 필요로하는 리소스를
저는 C/C++로 작성된 프로그램의 힙 메모리 크기를 지속적으로 추적 할 수있는 소프트웨어 라이브러리를 만들고 있습니다. 내가 뭘하고 싶은지는 다음과 같습니다. void check_memory(){
heap_size = get_process_heap_size(.....);
if(heap_size>=upper_bound){
/
이 문서를 읽는 중입니다. http://www.ece.cmu.edu/~ece447/s13/lib/exe/fetch.php?media=moscibroda.pdf 여기에는 다중 코어가있는 대부분의 아키텍처에 사용되는 메모리 액세스의 현재 방법이 설명되어 있습니다. 이 논문은 동시 스레드를 처리 할 때 현재 방법의 제한 사항에 대한 예제를 제공합니다. 여기서 연
리눅스 커널의 버디 시스템 할당 자와 관련하여 의심의 여지가 있습니다. 버디 시스템은 할당 된 1백28킬로바이트의 RAM이 있다고 가정 : 이 예를 생각해 보자. kmalloc을 사용하여 32KB를 할당 한 경우, 내 이해는 128KB는 1 단계에서 두 개의 64KB로 분할되고 첫 번째 64KB는 두 개의 32KB로 분할됩니다. 그러면 처음 32KB가 할당