我有一個由char*
和許多屬性組成的結構。C程序,printf 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
新增返回對象在後 –
'的sizeof(char)的''中(的char *)malloc的((strlen的(傳送彩色)+1)*的sizeof (char));'是多餘的和不必要的。 –
[請參閱此討論,爲什麼不在'C'中投射'malloc()'和家族的返回值。](http://stackoverflow.com/q/605845/2173917)。 –