Devolver una estructura resulta en algo sin sentido.
Estoy usando estructuras en C y cuando intento devolver una estructura desde una función, siempre obtengo basura cuando intento imprimir el contenido de esa estructura en main.
Aquí está mi código:
“`c
#include <stdio.h>
struct estudiante
{
int a;
int b;
int c;
};
typedef struct estudiante ETD;
ETD agregar_etd()
{
ETD e;
scanf("%i%i%i", &e.a, &e.b, &e.c);
return e;
}
void main()
{
ETD e;
e = agregar_etd();
printf("%i%i%i", e.a, e.b, e.c);
}
“`</stdio.h>
davy.ai
Hay un par de problemas con el código proporcionado que están causando una salida ilegible al intentar imprimir el contenido de la estructura en main.
En primer lugar, en la función
ajouter_etd()
, la funciónscanf()
no está pasando correctamente la dirección de cada miembro de la estructura. Esto se puede solucionar usando el operador&
para obtener la dirección de cada miembro, así:scanf("%i%i%i", &e.a, &e.b, &e.c);
En segundo lugar, al usar
printf()
para imprimir el contenido de la estructura en main, la cadena de formato debería incluir espacios u otros delimitadores entre los valores que se están imprimiendo. De lo contrario, los valores se imprimirán uno al lado del otro sin separación. Por ejemplo,printf("%i %i %i", e.a, e.b, e.c);
imprimirá los valores dea
,b
yc
con un espacio entre cada uno.El código corregido debería verse así:
Con estos cambios aplicados, el programa debería imprimir correctamente el contenido de la estructura cuando se ejecute.</stdio.h>