sizeof

Dlaczego sizeof dla struktury nie jest równy sumie sizeof każdego elementu?

Dlaczego operator sizeof zwraca rozmiar większy dla struktury niż całkowite rozmiary jej elementów?

Jak znaleźć ' sizeof '(wskaźnik wskazujący na tablicę)?

Po pierwsze, oto jakiś kod: int main() { int days[] = {1,2,3,4,5}; int *ptr = days; printf("%u\n", sizeof(days ... eć się, jaki rozmiar tablicy ptr wskazuje na (zamiast podawać jej rozmiar, który wynosi cztery bajty w systemie 32-bitowym)?

Dlaczego sizeof (x++) nie zwiększa x?

Oto kod skompilowany w dev C++ windows: #include <stdio.h> int main() { int x = 5; printf("%d and ", sizeof( ... będzie 6 po wykonaniuUwaga 1 . Jednak wyjście to: 4 and 5 Czy ktoś może wyjaśnić dlaczego x nie zwiększa się po Uwaga 1 ?

Czy rozmiar (jakiś wskaźnik) jest zawsze równy czterem?

Na przykład: sizeof(char*) zwraca 4. Podobnie jak int*, long long*, wszystko, czego próbowałem. Czy są od tego jakieś wyjątki?

Co zwraca sizeof(&array)?

Po zadaniu pytania: dlaczego adres tablicy jest równy jej wartości w C? #include <stdio.h> #define N 10 char str2[ ... r str2, ale z innego typu (char (*)[N] = = wskaźnik do tablicy). Ale jak &str2 zachowuje się, gdy jest argumentem sizeof?

rozmiar pojedynczego członka struktury w C

Próbuję zadeklarować strukturę zależną od innej struktury. Chcę używać sizeof, aby być bezpiecznym / pedantycznym. typedef s ... ar flag ; char text[sizeof(dummy->text)] ; int used ; } child_t ; Czy Można zadeklarować child_t bez użycia z dummy?

Dlaczego rozmiar parametru array nie jest taki sam jak w main?

Dlaczego rozmiar tablicy wysyłanej jako parametr nie jest taki sam jak w main? #include <stdio.h> void PrintSize(int ... PrintSize(myArray);/* Prints 4, not 40 */ } void PrintSize(int p_someArray[10]){ printf("%d\n", sizeof(p_someArray)); }

Dlaczego sizeof jest uważany za operatora?

Dlaczego sizeof jest uważany za operator, a nie za funkcję? Jaka nieruchomość jest konieczna, aby zakwalifikować się jako operator?

Czy są maszyny, gdzie sizeof (char)!= 1, Czy przynajmniej BIT CHAR > 8?

Czy są maszyny (lub Kompilatory), gdzie sizeof(char) != 1? Czy C99 standard mówi, że {[1] } w implementacji standardu zgod ... y, czy (może być) 7-bitowy? Update3: Ok. Wszystkie maszyny mają sizeof(char) == 1. Ale jakie maszyny mają CHAR_BIT > 8 ?

Dlaczego rozmiar pustej klasy w C++ nie jest zerowy? [duplikat]

Możliwy duplikat:C++: jaki jest rozmiar obiektu pustej klasy? Dlaczego następujące wyjście 1? #include <iostream> class Test { }; int main() { std::cout << sizeof(Test); return 0; }

Dlaczego litery C są intami zamiast znaków?

W C++, sizeof('a') == sizeof(char) == 1. Ma to sens intuicyjny, ponieważ 'a' jest literalnym znakiem, a sizeof(char) == 1 zde ... ami całkowitymi. Czy ktoś wie dlaczego? Mogę znaleźć wiele wzmianek o tym c quirk, ale nie ma wyjaśnienia, dlaczego istnieje.

Jeśli funkcja ma parametr tablicy o określonym rozmiarze, dlaczego jest zastępowana wskaźnikiem?

Biorąc pod uwagę następujący program, #include <iostream> using namespace std; void foo( char a[100] ) { cout & ... ik do pierwszego elementu? czy to dziedzictwo z C? co mówi norma? Dlaczego zrezygnowano ze ścisłego bezpieczeństwa Typu C++?

Co oznacza 'nazwa tablicy' w przypadku tablicy wskaźników znakowych?

W moim kodzie: char *str[] = {"forgs", "do", "not", "die"}; printf("%d %d", sizeof(str), sizeof(str[0])); Otrzymuję w ... jako 12 2, więc moje wątpliwości są następujące: dlaczego jest różnica? oba str i str[0] są znakami znakowymi, prawda?

Jaki jest rozmiar wskaźnika?

Czy wielkość wskaźnika jest taka sama jak wielkość typu, na który wskazuje, czy wskaźniki zawsze mają stały rozmiar? Na przy ... dla którego pytam, jest to, że wskaźniki przechowują adres pamięci, a nie wartości ich odpowiednich przechowywanych adresów.

Czy sizeof w C++ jest oceniany w czasie kompilacji czy w czasie wykonywania?

Na przykład wynik tego fragmentu kodu zależy od tego na jakiej maszynie: maszyna kompilatora czy plik wykonywalny maszyny działa? sizeof(short int)

Dlaczego sizeof int jest zły, podczas gdy sizeof (int) ma rację?

Wiemy, że sizeof jest operatorem używanym do obliczania wielkości dowolnego typu danych i wyrażenia, a gdy operand jest wyraż ... Moje pytanie brzmi, dlaczego standard C nie pozwala na tego rodzaju operacje. Czy sizeof int spowoduje jakieś niejasności?

Dlaczego " sizeof (a? true: false) " daje wyjście o 4 bajty?

Mam mały fragment kodu o operatorze sizeof z operatorem trójdzielnym: #include <stdio.h> #include <stdbool.h> ... ca boolean type I sizeof bool type jest 1 bajtem w C. To dlaczego sizeof(a ? true : false) daje wyjście o czterech bajtach?

Dlaczego za każdym razem, gdy używam malloc, otrzymuję Ostrzeżenie?

Jeśli użyję malloc w moim kodzie: int *x = malloc(sizeof(int)); Dostaję to Ostrzeżenie od gcc: new.c:7: warning: implicit declaration of function ‘malloc’ new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’

Czy są jakieś platformy, na których wskaźniki do różnych typów mają różne rozmiary?

Standard C pozwala wskaźnikom różnych typów mieć różne rozmiary, np. sizeof(char*) != sizeof(int*) jest dozwolone. Wymaga to ... klasy (nie-polimorficzny, dziedziczenie pojedyncze, dziedziczenie wielokrotne, dziedziczenie wirtualne lub typ niekompletny).

W C operator sizeof zwraca 8 bajtów przy przejściu 2,5 m, ale 4 bajty przy przejściu 1,25 m * 2

Nie rozumiem, dlaczego operator sizeof daje następujące wyniki: sizeof( 2500000000 ) // => 8 (8 bytes). ... zwraca 8, a ... cji. Pytanie: czy jest bieg operator czasu, który może ocenić te wyrażenia i wyprodukować oczekiwany wynik (bez odlewania)?