C | String | Pregunta 10

#include <stdio.h>
   
void my_toUpper(char* str, int index)
{
    *(str + index) &= ~32;
}
   
int main()
{
    char* arr = "geeksquiz";
    my_toUpper(arr, 0);
    my_toUpper(arr, 5);
    printf("%s", arr);
    return 0;
}

(A) GeeksQuiz
(B) geeksquiz
(C) Depende del compilador

Respuesta: (C)
Explicación: La memoria para la string arr se asigna en el área de solo lectura/escritura de la sección de datos. La elección depende del compilador. En la versión más reciente de los compiladores, la memoria se asigna en la sección de solo lectura del área de datos. Por lo tanto, cualquier modificación en la string no es posible.
En compiladores de versiones anteriores como Turbo-C, la modificación es posible.
Cuestionario de esta pregunta

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 *