J'ai pour tâche de créer un programme de location de voitures, qui utilise des listes chaînées pour contrôler quelles voitures sont disponibles à la location, louées ou en réparation. La «voiture» est une structure, tout comme la liste louée, la liste disponible et la liste de réparation.Listes liées, assignation de tableau de caractères [C]
Voici mon numéro actuel. Si l'utilisateur veut faire une nouvelle voiture disponible, nous devons l'ajouter à notre liste de toutes les voitures possibles, et nous devons l'ajouter à la liste des voitures disponibles.
Je n'ai aucun problème à l'ajouter à la liste des voitures, mais quand j'ai besoin de l'ajouter à la liste des voitures disponibles, je reçois un défaut de segmentation.
Je vais maintenant fournir le code:
typedef struct vehicles
{
char idNum[20];
int miles;
int rDate;
struct vehicles *nextCar;
}car;
typedef struct list
{
car * aCar;
struct list *nextCar;
} carList;
La liste de toutes les voitures est:
car * carHead, * carCur;
La liste de toutes les voitures disponibles est:
carList * availHead, * availCur;
Les deux sont initialisés à NULL.
Je crée alors une nouvelle voiture, et mis dans les données que l'utilisateur m'a donné (nombre de kilométrage et ID)
carCur = (car *)malloc(sizeof(car));
//set ID, Mileage
for(k=0;k<=19;k++)
{
carCur->idNum[k] = idNum[k];
}
carCur->miles = miles;
carCur->nextCar = NULL;
Cela fonctionne parfaitement bien. J'appelle la fonction qui l'ajoute réellement à la liste, tout va bien.
Ensuite, je crée une nouvelle structure carList à ajouter à la liste des voitures disponibles.
availCur = (carList *)malloc(sizeof(carList));
//set ID, Mileage
for(k=0;k<=19;k++)
{
availCur->aCar->idNum[k] = idNum[k];
printf("assigned\n");
}
availCur->aCar->miles = miles;
availCur->nextCar = NULL;
Après quelques essais en utilisant printf, (qui werent tout compris ici par souci de concision), je trouve la faute de seg se produit dans cette déclaration. J'espère que quelqu'un peut me dire pourquoi cette affectation entraîne une erreur de segmentation. J'ai vérifié le idNum
fourni par l'utilisateur est bon, et cela fonctionne pour ajouter à la liste de toutes les voitures, donc je ne suis pas sûr de ce qui ne va pas.
J'apprécie l'aide!
Merci, j'ai choisi votre réponse, car elle est la plus concise, et répond très directement à la question. – Blackbinary