Predecir la salida
#include <string.h> #include <stdio.h> #include <stdlib.h> void fun(char** str_ref) { str_ref++; } int main() { char *str = (void *)malloc(100*sizeof(char)); strcpy(str, "GeeksQuiz"); fun(&str); puts(str); free(str); return 0; }
(A) GeeksQuiz
(B) eeksQuiz
(C) Valor basura
(D) Error del compilador
Respuesta: (A)
Explicación: tenga en cuenta que str_ref es una variable local para fun(). Cuando hacemos str_ref++, solo cambia la variable local str_ref.
Podemos cambiar el puntero str usando el operador de desreferencia *. Por ejemplo, el siguiente programa imprime «eeksQuiz»
#include <string.h> #include <stdio.h> #include <stdlib.h> void fun(char** str_ref) { (*str_ref)++; } int main() { char *str = (void *)malloc(100*sizeof(char)); strcpy(str, "GeeksQuiz"); fun(&str); puts(str); free(str); return 0; }
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