Articles of sizeof

¿Por qué sizeof (x ++) no incrementa x?

Aquí está el código comstackdo en las ventanas dev c ++: #include int main() { int x = 5; printf(“%d and “, sizeof(x++)); // note 1 printf(“%d\n”, x); // note 2 return 0; } Espero que x sea ​​6 después de ejecutar la nota 1 . Sin embargo, el resultado es: 4 and 5 ¿Alguien […]

Tamaño C de una matriz pasada

Posible duplicado: Cómo encontrar el tamaño de (un puntero apuntando a una matriz) Entiendo que el operador sizeof se evalúa y reemplaza con una constante en tiempo de comstackción. Dado que, ¿cómo puede una función, al pasar diferentes matrices en diferentes puntos de un progtwig, tener su tamaño calculado? Puedo pasarlo como un parámetro a […]

¿Por qué una C-Array tiene un tamaño de valor () incorrecto cuando se pasa a una función?

Ejemplo completo: #include void test(int arr[]) { int arrSize = (int)(sizeof(arr) / sizeof(arr[0])); printf(“%d\n”, arrSize); // 2 (wrong?!) } int main (int argc, const char * argv[]) { int point[3] = {50, 30, 12}; int arrSize = (int)(sizeof(point) / sizeof(point[0])); printf(“%d\n”, arrSize); // 3 (correct 🙂 ) test(point); return 0; } Antes de pasarlo a […]

¿Hay máquinas, donde sizeof (char)! = 1, o al menos CHAR_BIT> 8?

¿Hay máquinas (o comstackdores), donde sizeof(char) != 1 ? ¿El estándar C99 dice que sizeof(char) en la implementación de cumplimiento estándar DEBE ser exactamente 1? Si lo hace, por favor, dame el número de sección y la cita. Actualización: si tengo una máquina (CPU) que no puede direccionar los bytes (la lectura mínima es de […]

¿Qué devuelve sizeof (& array)?

Después de la pregunta: ¿Cómo es que la dirección de una matriz es igual a su valor en C? #include #define N 10 char str2[N]={“Hello”}; int main(){ printf(“sizeof(str2): %d bytes\n”, sizeof(str2)); printf(“sizeof(&str2): %d bytes\n”, sizeof(&str2)); return 0; } Salida: sizeof(str2): 10 bytes sizeof(&str2): 4 bytes Sé que str2 solo es la dirección del primer elemento […]

¿Por qué el tamaño de un parámetro de matriz no es el mismo que el de main?

¿Por qué no se envía el tamaño de una matriz como un parámetro igual que en main? #include 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 PrintSize(int p_someArray[10]){ printf(“%d\n”, sizeof(p_someArray)); }

Cuando una función tiene un parámetro de matriz de tamaño específico, ¿por qué se reemplaza con un puntero?

Dado el siguiente progtwig, #include using namespace std; void foo( char a[100] ) { cout << "foo() " << sizeof( a ) << endl; } int main() { char bar[100] = { 0 }; cout << "main() " << sizeof( bar ) << endl; foo( bar ); return 0; } salidas main() 100 foo() 4 […]

¿Cómo encontrar el ‘tamaño de’ (un puntero apuntando a una matriz)?

Primero, 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 ptr (en lugar de solo dar su tamaño, que es cuatro bytes en un sistema de 32 bits)?

¿Por qué no es sizeof para una estructura igual a la sum de sizeof de cada miembro?

¿Por qué el operador ‘sizeof‘ devuelve un tamaño mayor para una estructura que el tamaño total de los miembros de la estructura?