C | Conceptos básicos del puntero | Pregunta 12

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *