我一直在努力試圖爲什麼我收到以下警告要弄清楚的一個元素的指針:
初始化使指針從整數沒有投使得存儲字符數組
高亮警告我在下面提到。我目前使用的代碼只是以鏈表形式創建元素樹的開始。此代碼似乎工作正常,但我得到停靠點警告。
typedef struct Node {
struct Node *leftChild;
struct Node *rightChild;
char data;
} Node;
Node *TreeCreate(int level, const char *data) {
struct Node *ptr = (struct Node*) malloc(sizeof (Node));
if (ptr == NULL) {
// malloc failed
return 0;
}
ptr->data = data; // WARNING
ptr->leftChild = NULL;
ptr->rightChild = NULL;
return ptr;
}
// TEST CODE IN MAIN
char list[6] = {'A', 'B', 'C','\0'};
// Determines the element
const char *tree = list[0]; // WARNING
ptr = TreeCreate(1, tree);
if (ptr != NULL) {
sprintf(string, "TreeData: %c\n", ptr->data);
OledDrawString(string);
OledUpdate();
}
首先[不投的malloc'的結果()'](http://stackoverflow.com/a/605858/1983495)。然後,請發佈'string'聲明。 – 2015-03-02 23:51:10
typedef'ing結構總是一個壞主意,應該避免 – user3629249 2015-03-03 01:35:51
在C中,malloc(和家族)返回的值不應該被轉換 – user3629249 2015-03-03 01:37:04