Red de conocimiento informático - Computadora portátil - ¿Qué tipo de valor de retorno debería definir una función de estructura de retorno de C?

¿Qué tipo de valor de retorno debería definir una función de estructura de retorno de C?

Lo que estás haciendo está mal, el estudiante está en la pila, por lo que no hay forma de regresar a otra estructura para recibirlo, porque esta estructura no existe, por lo que

Primero debes definir struct tagStudent {. ..} . es una variable global

Para el lenguaje C estándar, debes usar parámetros de puntero

void foo(struct tagStudent *output)

No tiene sentido para el retorno value es un puntero, porque la persona que llama no sabe si asigna memoria o apunta a una variable global, que es lo que se puede considerar una variable global. La variable declara el valor de retorno como const struct tagStudent *

c Es más razonable usar parámetros de referencia

void foo(struct tagStudent amp; output)

Devolver estructura No es imposible, pero puede producir una copia de memoria grande. Si la estructura es muy grande, use una copia de memoria grande. Si la estructura es muy grande y usa la estructura para recibirla, se realizará una copia grande, lo que en sí mismo parece innecesario y puede manejarse pasándolo como un parámetro de puntero que apunta a la misma dirección de memoria.