我有一个由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;
}