Disculpe si el título es un poco confuso. Lo que estoy haciendo es crear una estructura como:Asignar valores a una clave en un puntero a un registro en C
struct record
{
int value;
int key;
};
Luego, utilizando un typedef para llamar a un puntero a grabar "elemento" de esta manera:
typedef struct record* Item;
Básicamente que sigo cómo era hecho en Algoriths in C por Robert Sedgewick (tercera edición) en la página 290 en caso de que alguien tenga este libro.
Lo que estoy teniendo problemas es leer un valor de la consola, luego asignarlo a la clave. Esto es lo que tengo, y los errores que estoy recibiendo:
void setKey(Item *element, int x)
{
element->key = x;
}
void standInput(Item A[], int length)
{
int i;
int x;
for(i = 0; i < length; i++)
{
printf("Enter a value for spot %i: ", i+1);
scanf("%d", &x);
setKey(A[i], x);
}
}
gcc Item.h
Item.h:33:6: warning: conflicting types for ‘setKey’
Item.h:23:3: note: previous implicit declaration of ‘setKey’ was here
Si pudiera conseguir un empujón en la dirección correcta, yo realmente lo aprecio. Obtuve el programa para que esta asignación funcionara perfectamente cuando Item era simplemente de entrada simple, pero ahora estoy tratando de usar Item-> Key y estoy un poco perdido :) ¡Gracias!
Si alguien necesita alguna otra parte del código que no creí necesario, lo publicaré tan pronto como vea la solicitud.
Revisión: Moví mi función setKey por encima de standInput, por lo que el error de compilación desapareció. Lo que quiero decir es sin embargo un fallo segmento, así que todavía estoy asignando mal :)
+1 para una pregunta bien redactada y completa que incluya una descripción de lo que ha intentado y un mensaje de error. * entonces * refrescante para ver – bernie
¿Está asignando memoria para cada elemento de la matriz? – Cornstalks