정렬 된 스토리지로 동적 메모리 할당

그레이 울프 82

std::aligned_storage사용하고 동적 할당이 필요한 경우 정렬 요구 사항에 대해 약간 혼란스러워 합니다. 예:

  using storage = typename std::aligned_storage<sizeof(T), std::alignment_of<T>::value>::type;
  storage* pool;
  pool = ::new storage[num_obj];

합법적입니까? new 연산자는 정렬 메모리를 반환하지 않으므로 결과가 정확합니까?

마이클 켄젤

C ++ 11 표준에서는 [basic.stc.dynamic / 2]에::operator new 정렬 된 반환 메모리 와 같은 할당 함수가 필요합니다 .alignof(std::max_align_t)

반환 된 포인터는 기본 정렬 요구 사항 […]을 가진 완전한 객체 유형의 포인터로 변환 될 수 있도록 적절하게 정렬되어야합니다.

따라서 new표현식 을 통해 생성하는 객체의 유형이 과다 정렬 된 유형 (보다 엄격한 정렬이 필요한 유형)이 아닌 한 모든 것이 정상 alignof(std::max_align_t)입니다. 과도하게 정렬 된 유형의 경우 실제로 포인터를 수동으로 정렬하기에 충분한 크기의 저장소를 할당해야합니다. 예를 들어를 사용하여 std::align적절한 주소에 개체를 구성해야합니다. 예를 들어 new…

C ++ 17부터 new자동으로 처리됩니다. 보다 엄격한 정렬이 필요한 스토리지를 할당하기 위해 __STDCPP_­DEFAULT_­NEW_­ALIGNMENT__(할당 함수가 최소한 제공해야하는 정렬), new-expression 은 인수 [expr.txt] 로 할당 될 스토리지의 정렬이 명시 적으로 지정된 할당 함수를 호출합니다 . 신규] / 14

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

정렬 된 스토리지로 동적 메모리 할당

분류에서Dev

동적 대 정적 메모리 할당

분류에서Dev

동적 대 정적 메모리 할당

분류에서Dev

가비지 문자로 동적으로 할당 된 메모리

분류에서Dev

동적으로 할당 된 메모리로 구조 초기화

분류에서Dev

동적으로 할당 된 메모리로 해제

분류에서Dev

C에서 동적으로 할당 된 메모리 해제

분류에서Dev

QT에서 동적으로 할당 된 메모리 해제

분류에서Dev

동적으로 할당 된 메모리 삭제

분류에서Dev

C에서 동적 대 정적 / 자동 메모리 할당

분류에서Dev

문자열 및 고정 크기로 동적 메모리 할당

분류에서Dev

gfortran : 정적 메모리 할당 강제

분류에서Dev

char * 보유 정수에 대한 동적 메모리 할당

분류에서Dev

동적으로 할당 된 메모리를 사용 가능하게 만들기

분류에서Dev

scanf 후 동적 메모리 할당

분류에서Dev

C에서 메모리 동적 할당

분류에서Dev

C : fork () 동적 메모리 할당

분류에서Dev

문자열에 동적 메모리 할당, 잘못된 크기 제공

분류에서Dev

동적으로 할당 된 메모리의 크기를 동적으로 계산하는 방법

분류에서Dev

클래스 객체와 동적 메모리 할당으로 구성된 C ++ 벡터-2 부

분류에서Dev

클래스 객체 및 동적 메모리 할당으로 구성된 C ++ 벡터

분류에서Dev

정적으로 할당 된 배열은 C에서 메모리에 어떻게 배치됩니까?

분류에서Dev

별도의 프로그램에서 동적으로 할당 된 메모리를 삭제할 수 있습니까?

분류에서Dev

malloc 할당 된 C 메모리 대상에 Fortran 정수 값 할당

분류에서Dev

동적으로 할당 된 메모리에서 인쇄 할 때 값이 변경됨

분류에서Dev

C 언어 배열에 대한 동적 메모리 할당 정보

분류에서Dev

정적 멤버로 STL 컨테이너의 메모리 할당

분류에서Dev

c에서 동적 메모리 할당, malloc ()을 사용하기 전에 할당 된 메모리의 일부를 해제합니다.

분류에서Dev

동적으로 할당 된 메모리를 채우면 프로그램 실행이 중단됨

Related 관련 기사

  1. 1

    정렬 된 스토리지로 동적 메모리 할당

  2. 2

    동적 대 정적 메모리 할당

  3. 3

    동적 대 정적 메모리 할당

  4. 4

    가비지 문자로 동적으로 할당 된 메모리

  5. 5

    동적으로 할당 된 메모리로 구조 초기화

  6. 6

    동적으로 할당 된 메모리로 해제

  7. 7

    C에서 동적으로 할당 된 메모리 해제

  8. 8

    QT에서 동적으로 할당 된 메모리 해제

  9. 9

    동적으로 할당 된 메모리 삭제

  10. 10

    C에서 동적 대 정적 / 자동 메모리 할당

  11. 11

    문자열 및 고정 크기로 동적 메모리 할당

  12. 12

    gfortran : 정적 메모리 할당 강제

  13. 13

    char * 보유 정수에 대한 동적 메모리 할당

  14. 14

    동적으로 할당 된 메모리를 사용 가능하게 만들기

  15. 15

    scanf 후 동적 메모리 할당

  16. 16

    C에서 메모리 동적 할당

  17. 17

    C : fork () 동적 메모리 할당

  18. 18

    문자열에 동적 메모리 할당, 잘못된 크기 제공

  19. 19

    동적으로 할당 된 메모리의 크기를 동적으로 계산하는 방법

  20. 20

    클래스 객체와 동적 메모리 할당으로 구성된 C ++ 벡터-2 부

  21. 21

    클래스 객체 및 동적 메모리 할당으로 구성된 C ++ 벡터

  22. 22

    정적으로 할당 된 배열은 C에서 메모리에 어떻게 배치됩니까?

  23. 23

    별도의 프로그램에서 동적으로 할당 된 메모리를 삭제할 수 있습니까?

  24. 24

    malloc 할당 된 C 메모리 대상에 Fortran 정수 값 할당

  25. 25

    동적으로 할당 된 메모리에서 인쇄 할 때 값이 변경됨

  26. 26

    C 언어 배열에 대한 동적 메모리 할당 정보

  27. 27

    정적 멤버로 STL 컨테이너의 메모리 할당

  28. 28

    c에서 동적 메모리 할당, malloc ()을 사용하기 전에 할당 된 메모리의 일부를 해제합니다.

  29. 29

    동적으로 할당 된 메모리를 채우면 프로그램 실행이 중단됨

뜨겁다태그

보관