Considere este código C para intercambiar dos enteros y estas cinco declaraciones después:
void swap(int *px, int *py) { *px = *px - *py; *py = *px + *py; *px = *py - *px; }
S1: generará un error de compilación
S2: puede generar una falla de segmentación en tiempo de ejecución dependiendo de los argumentos pasados
S3: implementa correctamente el procedimiento de intercambio para todos los punteros de entrada que se refieren a números enteros almacenados en ubicaciones de memoria accesibles para el proceso
S4: implementa correctamente el procedimiento de intercambio para algunos pero no todos los punteros de entrada válidos
S5: puede sumar o restar números enteros y punteros.
(A) S1
(B) S2 y S3
(C) S2 y S4
(D) S2 y S5
Respuesta: (C)
Explicación: S2: Puede generar una falla de segmentación si el valor en los punteros px o py es constante o px o py apunta a una ubicación de memoria que no es válida
S4: Puede que no funcione para todas las entradas como aritmética puede ocurrir un desbordamiento
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA