我一直在努力试图为什么我收到以下警告要弄清楚的一个元素的指针:
初始化使指针从整数没有投使得存储字符数组
高亮警告我在下面提到。我目前使用的代码只是以链表形式创建元素树的开始。此代码似乎工作正常,但我得到停靠点警告。
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