배열의 크기를 동적으로 늘리려고합니다. 배열의 끝에 추가 공간을 추가하거나 제거하는 표준 C 또는 C++ 함수가 있습니까? 힙의 끝에 충분한 공간이 있다는 것을 보장 할 수 없기 때문에 이것은 어렵습니다. 그러나 이것이 운영 체제의 일이되어서는 안됩니까?동적으로 배열 크기를 늘리거나 줄입니다.
답변
당신이 찾고있는이 기능은, 당신은 또한 관련 캡슐화 std::vector
같은 표준 컨테이너 갈 수 또한 C++를 언급 한 바와 같이 std::realloc
것처럼 C의 ++의 STL에 존재하는 C에서 realloc()
입니다 메모리 관리.
크기가 작아지지 않습니다 ** ** ** –
글쎄, 내가 이전에 가지고 있던 것보다 작은 크기를 입력하면 줄어 듭니다. 아니면 불가능한가요? –
@GrijeshChauhan 배열의 이전 크기보다 새로운 크기를 지정할 수 있습니다. C 표준은'realloc()'이 ptr이 가리키는 이전 객체의 할당을 해제하고 size로 지정된 크기를 가진 새로운 객체에 대한 포인터를 반환한다는 것을 (7.20.3.4) 지정하고 새로운 객체의 내용은 최대 min (oldSize, newSize)까지 동일합니다. – JBL
C 함수가 없습니다. 당신은 C++ 컨테이너에 갈 수 있습니다. 여기에는 배열, 목록 등이 있습니다.
아마도 할당 된 배열에서 메모리 청크를 추가/해제하는 방법으로 자신의 메모리 관리 래퍼를 작성하면됩니다.
교수님과 엔지니어 (몇 년에 걸쳐 실제 직업이있는 사람들)가 많은 실험을 한 후에 배열을 확장 할 때, 다른 정보를 알려주지 않는 한 50 % 확장하십시오. realloc()은 모두 무거운 짐을도 수행합니다 (다음에 설명합니다). 인터넷에서 : -> realloc() 함수는 ptr이 가리키는 메모리 블록의 크기를 size 바이트로 변경합니다. 내용은 영역의 시작부터 이전 및 새로운 크기의 최소값까지의 범위에서 변경되지 않습니다. 새 크기가 이전 크기보다 큰 경우 추가 된 메모리가 초기화되지 않습니다. ptr이 NULL이면, size의 모든 값에 대해 호출은 malloc (size)와 동일합니다. size가 0이고 ptr이 NULL이 아니면 호출은 free (ptr)와 같습니다. ptr이 NULL이 아니라면 malloc(), calloc() 또는 realloc()에 대한 이전 호출에 의해 리턴되어야합니다. 지시 된 영역이 이동되면 자유 (ptr)가 수행됩니다.
- 1. MPMusicPlayerController 볼륨을 동적으로 늘리거나 줄입니다.
- 2. 격자 높이를 동적으로 늘리거나 줄입니다.
- 3. JButton을 사용하여 textArea의 글꼴 크기를 늘리거나 줄입니다.
- 4. 보기의 눈금과 눈금 선의 크기를 늘리거나 줄입니다.
- 5. NSString 내에서 정수를 늘리거나 줄입니다.
- 6. jquery를 사용하여 오프셋을 늘리거나 줄입니다.
- 7. jquery 모바일 패널의 너비를 늘리거나 줄입니다.
- 8. 텍스트 상자의 글꼴 크기를 동적으로 줄입니다.
- 9. 높은 차트에서 포인트 간격을 늘리거나 줄입니다.
- 10. PHP의 문자열에서 MAC 주소를 늘리거나 줄입니다.
- 11. Azure에서 작업자 역할 인스턴스 수를 늘리거나 줄입니다.
- 12. 파이썬에서 Mac 주소를 문자열에서 늘리거나 줄입니다.
- 13. Objective-C에서 숫자를 늘리거나 줄입니다. iOS
- 14. 웹 사이트 크기를 늘리거나 줄이면
- 15. .air 파일의 크기를 줄입니다.
- 16. arraylist의 크기를 줄입니다.
- 17. MKPinAnnotation에서 제목의 크기를 줄입니다.
- 18. 문자열을 PCRE에서 크기를 줄입니다
- 19. UIImage 크기를 줄입니다
- 20. 이미지의 파일 크기를 줄입니다
- 21. cPickle 객체의 크기를 줄입니다.
- 22. 동적으로 배열 크기를 늘리는 방법
- 23. 동적으로 배열의 크기를 Excel에서 배열
- 24. Im 배열의 크기를 늘리거나 줄이려고 시도합니다.
- 25. Jquery : 크기 조정이 가능한 UI 플러그인을 사용하여 텍스트의 글꼴 크기를 늘리거나 줄입니다.
- 26. jquery cycle2를 사용하여 확대/축소 된 슬라이더에서 텍스트의 글꼴 크기를 늘리거나 줄입니다.
- 27. FileOutputStream은 파일 크기를 0으로 줄입니다.
- 28. DOMPDF 생성 파일 크기를 줄입니다
- 29. 아이폰은 이미지 파일 크기를 줄입니다
- 30. .net rotateflip은 파일 크기를 줄입니다.
C에서 '[void * realloc (void * ptr, size_t size);'] (http://www.cplusplus.com/reference/cstdlib/realloc/) 함수는 –
에 대해 다음과 같이 생각해야합니다. 어떤 언어로 프로그램을하고 있는가? C에서는'realloc'을 사용합니다. C++에서는'std :: vector'를 사용합니다. –