¿Por qué el sizeofoperador devuelve un tamaño mayor para una estructura que los tamaños totales de los miembros de la
sizeof se refiere al operador estándar C / C ++ para devolver el tamaño en bytes de una expresión o tipo de datos.
Quiero saber cómo obtener el tamaño de los objetos como una cadena, un entero, etc. en Python. Pregunta relacionada: ¿Cuántos bytes por elemento hay en una lista de Python (tupla)? Estoy usando un archivo XML que contiene campos de tamaño que especifican el tamaño del valor. Debo analizar este...
Aquí está el código compilado en dev c ++ windows: #include <stdio.h> int main() { int x = 5; printf("%d and ", sizeof(x++)); // note 1 printf("%d\n", x); // note 2 return 0; } Espero xser 6 después de ejecutar la nota 1 . Sin embargo, la salida es: 4 and 5 ¿Alguien puede explicar...
En primer lugar, aquí hay un código: int main() { int days[] = {1,2,3,4,5}; int *ptr = days; printf("%u\n", sizeof(days)); printf("%u\n", sizeof(ptr)); return 0; } ¿Hay alguna forma de averiguar el tamaño de la matriz a la que ptrapunta (en lugar de simplemente dar su tamaño, que es de...
Quiero saber el tamaño ocupado por un objeto JavaScript. Tome la siguiente función: function Marks(){ this.maxMarks = 100; } function Student(){ this.firstName = "firstName"; this.lastName = "lastName"; this.marks = new Marks(); } Ahora instanciaré el student: var stud = new...
Tengo un pequeño fragmento de código sobre el sizeofoperador con el operador ternario: #include <stdio.h> #include <stdbool.h> int main() { bool a = true; printf("%zu\n", sizeof(bool)); // Ok printf("%zu\n", sizeof(a)); // Ok printf("%zu\n", sizeof(a ? true : false)); // Why 4?...
¿Por qué se compila este código? _Static uint32_t my_arr[2]; _Static_assert(sizeof(my_arr) == 8, ""); _Static_assert(sizeof(my_arr[0]) == 4, ""); _Static_assert(sizeof(my_arr)[0] == 4, ""); Las primeras 2 afirmaciones son obviamente correctas, pero hubiera esperado que la última línea fallara, ya...
No encuentro una respuesta en la documentación estándar. ¿El estándar del lenguaje C ++ requiere sizeof(bool)ser siempre 1 (para 1 byte), o este tamaño está definido por la
Si uso mallocen mi código: int *x = malloc(sizeof(int)); Recibo esta advertencia de gcc: new.c:7: warning: implicit declaration of function ‘malloc’ new.c:7: warning: incompatible implicit declaration of built-in function
Estoy tratando de declarar una estructura que depende de otra estructura. Quiero usar sizeofpara ser seguro / pedante. typedef struct _parent { float calc ; char text[255] ; int used ; } parent_t ; Ahora quiero declarar una estructura child_tque tenga el mismo tamaño que parent_t.text. ¿Cómo...
¿Por qué el tamaño de una matriz enviada como parámetro no es el mismo que dentro de main? #include <stdio.h> void PrintSize(int p_someArray[10]); int main () { int myArray[10]; printf("%d\n", sizeof(myArray)); /* As expected, 40 */ PrintSize(myArray);/* Prints 4, not 40 */ } void...
En C ++, sizeof('a') == sizeof(char) == 1. Esto tiene sentido intuitivo, ya que 'a'es un carácter literal y sizeof(char) == 1como lo define el estándar. En C sin embargo, sizeof('a') == sizeof(int). Es decir, parece que los literales de caracteres C son en realidad números enteros. ¿Alguien sabe...
Sabemos que sizeofes un operador que se usa para calcular el tamaño de cualquier tipo de datos y expresión, y cuando el operando es una expresión, se pueden omitir los paréntesis. int main() { int a; sizeof int; sizeof( int ); sizeof a; sizeof( a ); return 0; } el primer uso de sizeofes...
На этот вопрос есть ответы на Stack Overflow на русском : Кто-нибудь встречал в своей практике sizeof (char)! = 1? ¿Hay máquinas (o compiladores), dónde sizeof(char) != 1? ¿El estándar C99 dice que la sizeof(char)implementación del cumplimiento del estándar DEBE ser...
¿Por qué se sizeofconsidera un operador y no una función? ¿Qué propiedad es necesaria para calificar como operador?
Estoy trabajando con la memoria de algunas lambdas en C ++, pero estoy un poco desconcertado por su tamaño. Aquí está mi código de prueba: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout...
Cuando verificamos el tamaño de una función usando sizeof(), siempre obtenemos 1 byte . ¿Qué significa este 1 byte?
Hay una publicación antigua que solicita una construcción por la que sizeofregresaría 0. Hay algunas respuestas de alta puntuación de usuarios de alta reputación que dicen que, según el estándar, ningún tipo o variable puede tener un tamaño de 0. Y estoy 100% de acuerdo con eso. Sin embargo,...
¿Qué produciría esta declaración? void *p = malloc(sizeof(void)); Editar: una extensión de la pregunta. Si sizeof (void) produce 1 en el compilador GCC, entonces se asigna 1 byte de memoria y el puntero p apunta a ese byte y ¿se incrementaría p ++ a 0x2346? Suponga que p fuera 0x2345....