0
我嘗試添加一個字符串動態分配的元素,但有一件事在我的功能「ajouter_element」「add_element」它在malloc的,但我不知道它是如何工作的與charactere陣列動態分配
void ajouter_element(liste* liste, chaine val){
element* listeCourante;
element* parcourt;
parcourt = *liste; //Cette element sert de pointeur ppour parcourir la liste pour ne pas perde la tete de la liste
listeCourante = (element*)malloc(sizeof(element)); // on alloue de la place dans cette liste
strcpy(listeCourante->val,val); // puis on ajoute la valeur entrée au clavier dans ce nouvelle element
listeCourante->svt=NULL; //comme on l'ajoute a la fin l'element suivant est donc NULL
if(parcourt==NULL){
*liste=listeCourante; //si la liste de depart est NULL on ajoute directement l'element
}else{
printf("pk");
while(parcourt->svt!=NULL){//on parcourt la liste pour pouvoir ajouter a la fin il faut que le pointeur pointe sur le derniere element
printf("pk");
parcourt=parcourt->svt;
}
parcourt->svt=listeCourante;
}
}
我主要以確保項目工程
int main(){
liste liste;
chaine valeur;
valeur=(chaine)malloc(20*sizeof(char));
initialisation(&liste);
afficher_liste(liste);
printf(" Entrez un mot (TAPEZ * POUR ARRETER LA BOUCLE) : \n");
scanf("%s",valeur); //on lit la valeur a jouter au clavier
while(strcmp(valeur,"*")!=0){ // * est le marqueur pour arreter la boucle
printf("ca marche 2.0");
ajouter_element(&liste,valeur);
printf(" Entrez un mot (TAPEZ * POUR ARRETER LA BOUCLE) : \n");
scanf("%s",valeur);
printf("ca marche");
}
afficher_liste(liste);
printf(" \nEntrez le mot a supprimer : \n");
scanf("%s",valeur);
supprimer_element(&liste,valeur);
afficher_liste(liste);
return 0;
}
什麼是你的問題嗎? 'chaine'的類型是什麼?顯示所有類型會更好。 –