Articles of sizeof

¿Cómo funciona sizeof (array) en tiempo de ejecución?

He leído que el operador sizeof en C se interpreta en tiempo de comstackción y dado que en comstackción el comstackdor conoce el tamaño de la matriz y su tipo, sizeof puede calcular el número de bytes ocupados por array. Pero ¿cómo funciona sizeof para el siguiente código? #include #include int main() { int n; […]

Puede sizeof devolver 0 (cero)

¿Es posible que el operador sizeof alguna vez devuelva 0 (cero) en C o C ++? Si es posible, ¿es correcto desde el punto de vista de los estándares?

¿Por qué (y cuándo) necesito usar paréntesis después de sizeof?

El siguiente no puede comstackr: typedef int arr[10]; int main(void) { return sizeof arr; } sizeof.c:3: error: expected expression before ‘arr’ pero si lo cambio a sizeof(arr); todo esta bien. ¿Por qué?

¿Por qué recibo una advertencia cada vez que uso malloc?

Si uso malloc en 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 ‘malloc’

¿Puedes cambiar el tamaño de una matriz C ++ después de la inicialización?

Estoy aprendiendo a progtwigr y C ++ es mi primer idioma. No se moleste en usar punteros para mostrarme; aún no los entiendo, y no me molestaré hasta que tenga más tiempo libre para dedicarme a esto. int mergeSort() { const int n = 9; int originalarray[n] = {1, 3, 5, 7, 9, 2, 4, […]

¿Qué se garantiza sobre el tamaño de un puntero de función?

En C, necesito saber el tamaño de una estructura, que tiene punteros de función en ella. ¿Se me puede garantizar que en todas las plataformas y architectures? el tamaño de un vacío * es del mismo tamaño que un puntero a función? el tamaño del puntero de función no difiere debido a su tipo de […]

En C, ¿por qué sizeof (char) 1, cuando ‘a’ es un int?

Lo intenté printf(“%d, %d\n”, sizeof(char), sizeof(‘c’)); y obtuve 1, 4 como salida. Si el tamaño de un personaje es uno, ¿por qué ‘c’ me da 4? Supongo que es porque es un número entero. Entonces cuando hago char ch = ‘c’; ¿Hay una conversión implícita ocurriendo, bajo el capó, de ese valor de 4 bytes […]

¿Cuál es el tamaño de un puntero?

¿El tamaño de un puntero es el mismo que el tipo al que apunta, o los punteros siempre tienen un tamaño fijo? Por ejemplo… int x = 10; int * xPtr = &x; char y = ‘a’; char * yPtr = &y; std::cout << sizeof(x) << "\n"; std::cout << sizeof(xPtr) << "\n"; std::cout << sizeof(y) […]

preguntas nuevas sobre malloc y sizeof

¿Puede alguien explicarme por qué mi llamada a malloc con un tamaño de cadena de 6 devuelve un tamaño de 4 bytes? De hecho, cualquier argumento entero que dé malloc me da un tamaño de 4. A continuación, bash copiar dos cadenas. ¿Por qué mi salida de la cadena copiada (NULL)? Lo siguiente es mi […]

tamaño de una unión en C / C ++

¿Cuál es el tamaño de la unión en C / C ++? ¿Es el tamaño del tipo de datos más grande dentro de él? Si es así, ¿cómo calcula el comstackdor cómo mover el puntero de stack si uno de los tipos de datos más pequeños de la unión está activo?