특정 하드웨어 아키텍처, 특정 운영 체제 (해당되는 경우) 및 특정 "비트 (32 비트 대 64 비트)"를 대상으로합니다. 이 경우 다른 컴파일러가 같은 에 대해 동일한 sizeof(T*)을 사용한다고 가정하는 것이 안전합니까? 표준 규칙이이 방법으로 수행 되는가? 표준에 의해 보장되지 않더라도 "정상적인 사용과 효율성을 목표로하는 대부분의 일반 컴파일러"
어떤 종류의 데이터를 파이썬 인터 피터가 객체에 저장합니까? 추천 예를 들어, 코드의 다음 class MyClass:
pass
if __name__ == "__main__":
c = MyClass()
import sys
print sys.getsizeof(c),sys.getsizeof(MyClass)
왜 출력 72
sizeof, malloc 및 malloc_size에 대해 읽었지만 어떤 이유로 그것이 목표 c에서 제대로 작동하지 않습니다. 내가하려는 것은 동적으로 메모리를 할당 한 다음 포인터의 크기를 확인하는 것입니다. 나는이 일을 시도 : void *pointer = malloc(sizeof(void) * 8);
long test1 = malloc_size(po
현재 일부 코드를 업데이트하고 있는데 코드가 time_t 변수의 크기에 대한 가정을 signed long과 동일하게 만드는 지점을 만났습니다. 이 코드는 이전 플랫폼에서 작동합니다 (사실 Coldfire에서 보았 듯이).하지만 우리는 새로운 플랫폼으로 이동하고 있습니다. 그 not well defined.입니다하지만 난 정말 일 현재이 가정에 기초 코드의
나는 C 코드의 조각이 있고 sizeof(...) 기능이 어떻게 작동하는지 이해가 안 돼요 (성)은 8입니다. 그러나 bobby은 5 자이고 eraserhead은 11 자입니다. 나는 16을 기대한다. 문자 배열과 문자 포인터에 대해 sizeof의 동작이 다른 이유는 무엇입니까? 아무도 분명히 할 수 있습니까?
내 코드의 두 부분이 sizeof() 연산자에 대해 다른 결과를 반환하는 C++ 문제를 해결하려고합니다. 여기에 내가 내 프로젝트의 두 개의 서로 다른 섹션에 코드를 삽입 MyClass* foo = new MyClass();
int size = sizeof(*foo)
를 실행하고 나는 두 개의 서로 다른 결과를 얻을 것입니다. 한 번은 2254, 다른
전 처리기가 실행될 때 time_t의 크기를 알 수있는 방법이 있습니까? time_t이 int32_t 또는 int64_t인지 알고 싶습니다. Linux (POSIX) 및 Windows (Mac OS/X에서는 가능하면)에서 트릭을 사용하고 싶습니다. #if time_t == _32BIT
typedef zint32_t my_time_t;
#else
typ
의 비트 수를 결정하는 방법이 내가 뭘하려 : int i=-1,size=1;
while (i>>1)
size++;
printf("%d",size);
목표는 sizeof 연산자를 사용하지 않고 int의 크기를 결정하는 것입니다. 위의 루프는 무한한 것으로 나타났습니다. 그것을 고칠 수있는 방법이 있습니까?
정수형 벡터가 들어있는 구조체를 정의했습니다. 그런 다음 벡터에 10 개의 정수를 삽입하고 구조체의 크기를 확인합니다. 그러나 나는 아무런 차이가 없다. 두 경우 struct data
{
vector<int> points;
}
int main()
{
data d;
cout << sizeof(d) << endl;
감안할 때 예를 들어 클래스 class test
{
public:
test();
~test();
void someMethod();
void someOtherMethod();
private:
int var;
};
이 sizeof(test) == sizeof(int), 또는 우리는 가정을 할 수의 크기를 포함하도록 보장되어 있습니까? 플랫