고성능 컴퓨팅 (10 ^ 5-10 ^ 6 코어)을 위해 MPI를 사용하는 우리 프로젝트에 대해 다른 사람의 C ++ 코드를 검토하고 있습니다. 이 코드는 서로 다른 아키텍처에서 (잠재적으로) 서로 다른 시스템 간의 통신을 허용하기위한 것입니다. 그는 다음과 같은 내용을 설명하는 주석을 작성했습니다.
우리는 일반적으로
new
and를 사용delete
하지만 여기서는malloc
and를 사용free
합니다. 일부 컴파일러는 사용시 데이터를 다르게 패딩하여new
다른 플랫폼간에 데이터를 전송할 때 오류가 발생 하기 때문에 필요 합니다. 이것은malloc
.
이것은 표준 new
대 malloc
질문 에서 내가 아는 어떤 것과도 맞지 않습니다 .
new / delete와 malloc / free의 차이점은 무엇입니까? 컴파일러가 객체의 크기를 다르게 계산할 수 있다는 생각을 암시합니다 (하지만 왜 그것이 sizeof
? 를 사용하는 것과 다른지 ).
malloc 및 배치 new vs. new 는 상당히 인기있는 질문이지만 그렇지 않은 new
생성자 를 사용하는 것에 대해서만 이야기 malloc
합니다. 이는 이와 관련이 없습니다.
malloc은 정렬을 어떻게 이해합니까? 메모리가 제대로 중 하나에 정렬이 보장되는 것을 말한다 new
거나 malloc
하는 것은 내가 이전에 생각했던 것 것입니다.
내 생각 엔 그가 과거에 자신의 버그 시간을 좀 오진 및 추론 점이다 new
그리고 malloc
나는 사실이 아니다 아마 생각 패딩 서로 다른 양의를 제공합니다. 하지만 Google이나 이전 질문에서 답을 찾을 수 없습니다.
도와주세요, StackOverflow, 당신은 나의 유일한 희망입니다!
malloc
와 new
같은 new
일부 환경 블록을 할당에서, 처음에 어떤 데이터를 추가하고,이 데이터 후에 오른쪽 위치에 대한 포인터를 리턴한다. (필자는 데이터 블록 내부에, 다른 사람들과 동의 malloc
와 new
패딩의 동일한 종류를 사용해야합니다.)