아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
아하

생활

생활꿀팁

말끔한부엉이66
말끔한부엉이66

malloc 사이즈에 관해서 궁금해요

malloc을 사용할 때 void*malloc(size)이런 식으로 하던데,

저 뒤 사이즈가 어떤게 들어가야할지 감이 잘 안잡힙니다...

감 좀 잡게 도와주시면 매우 감사합니다 ㅠㅠ

    55글자 더 채워주세요.
    2개의 답변이 있어요!
    • 유망한치와와177
      유망한치와와177

      malloc 함수는 memory block을 size byte 만큼 할당하는 기능을 제공하며, memory block의 첫주소를 void* 타입으로 리턴합니다. 또한 할당된 영약은 초기화 되어 있지 않습니다.

      #include <iostream> #include <cstdlib> using namespace std; int main() { int *ptr; ptr = (int*) malloc(5*sizeof(int)); cout << "Initializing values" << endl << endl; for (int i=0; i<5; i++) { ptr[i] = i*2+1; } cout << "Initialized values" << endl; for (int i=0; i<5; i++) { cout << *(ptr+i) << endl; } free(ptr); return 0; }


    • byte크기 기준으로 크기가 들어갑니다.

      예로 float형 10개의 array면 sizeof(float) * 10 이고 sizeof(float) 은 4 byte이기 때문에 4 값, 그래서 최종적으로 malloc(40) 값이 들어가게 됩니다.

      또 다른 예로 int형 20개의 array 면 sizeof(int) * 20 이고 sizeof(int)는 4byte이기 때문에 4 값, 그래서 최종적으로malloc(80) 값이 들어가게 됩니다.

      double 형 20개 array형 sizeof(double)은 8 byte라 8값이 들어가고 최종적으로 malloc(160)의 값이 들어가게 됩니다.