我有一个由char*和许多属性组成的结构。
我无法将我的char*作为字符串打印,它只是崩溃。
这是我的代码:

int main() {
    sommet_t* sommet = creerSommet("rouge", 5, NULL);
    printf("Couleur : %s", sommet->couleur);
    return 0;
}

还有我的sommet.c:
sommet_t* creerSommet(char* couleur, int distance, sommet_t* pere) {
    sommet_t* sommet =  malloc(sizeof(sommet_t));
    sommet->distance = distance;
    sommet->couleur = (char*)malloc((strlen(couleur)+1) * sizeof(char));
    strcpy(sommet->couleur,couleur);
    sommet->pere = pere;
}

我完全不知道里面出了什么问题。
编辑:sommet.h
#ifndef __SOMMET_H__
#define __SOMMET_H__

typedef struct sommet_type {
    char *couleur;
    int distance;
    struct sommet_type *pere;
} sommet_t;

sommet_t* creerSommet(char*, int, sommet_t*);

#endif

最佳答案

您应该从函数返回对象creerSommet

sommet_t* creerSommet(char* couleur, int distance, sommet_t* pere) {
    sommet_t* sommet =  malloc(sizeof(sommet_t));
    sommet->distance = distance;
    sommet->couleur = (char*)malloc((strlen(couleur)+1) * sizeof(char));
    strcpy(sommet->couleur,couleur);
    sommet->pere = pere;
    return sommet;
}

09-25 21:14