sizeof, malloc 및 malloc_size에 대해 읽었지만 어떤 이유로 그것이 목표 c에서 제대로 작동하지 않습니다.메모리 할당 후 포인터 크기 얻기
내가하려는 것은 동적으로 메모리를 할당 한 다음 포인터의 크기를 확인하는 것입니다.
나는이 일을 시도 :void *pointer = malloc(sizeof(void) * 8);
long test1 = malloc_size(pointer); // Its value is 16
long test2 = sizeof(pointer); // Its value is 8
링크를 대답 아래에 정확히 같은 질문을하지만 나를 위해 작동하지 않습니다.
편집 : 는 또한
char *malloc(sizeof(char) * 8)
를 사용하여 시도했지만 중 하나가 작동하지 않았다.
'sizeof (void)'는 실제로 의미가 없습니다. 여기를 참조하십시오 : http://stackoverflow.com/questions/1666224/what-is-the-size-of-void – MatthewD
sizeof (void)는 sizeof (char)와 동일한 값 1을 반환합니다. 이것은 1입니다. 컴파일 오류 나 경고를 생성합니다. –
컴파일러 관련 동작입니다. GCC는 1을 반환하지만 Visual C++ 2012는 0을 반환하고 컴파일러 경고를 제공합니다. 여기를 참고하십시오 : http://msdn.microsoft.com/en-au/library/tf66xte5.aspx – MatthewD