Usa etiquetas GeSHi para insertar el código. Están en la barra de herramientas, en un desplegable, cuando estás escribiendo un post o una respuesta. (Para moderadores y webmaster: Sería mejor cambiar el texto Código GeSHi por algo más intuitivo como 'Elige lenguaje...' o 'Color syntax...'.
AXA, ¿qué estás usando para aprender C?
Veo main sin tipo o main con tipo void... Normalmente un libro o tutorial (de C moderno, no el pre-ansi) te dice que main es de tipo int y hay que marcarlo explícitamente.
También debes tener en cuenta la precedencia de operadores:
estás dereferenciando i1, no i2.
Una pequeña prueba de ello:
#include <stdio.h>
#include <stdlib.h>
struct st {
int *miembro;
};
int main() {
struct st mi_estructura;
mi_estructura.
miembro = malloc(sizeof(int)); *mi_estructura.miembro = 20;
printf("%d\n", *mi_estructura.
miembro);
free(mi_estructura.
miembro); }
Por tanto debería ser así:
Aunque en C tienes el operador flecha que te limpia el código:
Por tanto el código último que has puesto, solucionados estos pequeños fallos y poniendo nombres representativos en los identificadores, quedaría algo así:
#include <stdio.h>
struct st {
int miembro;
};
void inicializa_a_20(struct st *una_estructura) {
una_estructura->miembro = 20;
// alternativa:
// (*una_estructura).miembro = 20;
}
int main() {
struct st mi_estructura;
inicializa_a_20(&mi_estructura);
printf("%d\n", mi_estructura.
miembro); }