有人可以教我一下吗

楼主: oin1104 (是oin的说)   2023-12-08 15:02:16
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
char* map = malloc(sizeof(char) * 100000);
int pf[1] = {};
bool go(struct TreeNode* root)
{
if(root == NULL)return;
map[pf[0]] = '(root->val)' ;
pf[0] ++;
if((root->left != NULL)&&(root->right != NULL))
{
map[pf[0]] = '(';
pf[0] ++;
go(root->left);
map[pf[0]] = ')';
pf[0] ++;
map[pf[0]] = '(';
pf[0] ++;
go(root->right);
map[pf[0]] = ')';
pf[0] ++;
}
else if(root->left != NULL)
{
map[pf[0]] = '(';
pf[0] ++;
go(root->left);
map[pf[0]] = ')';
pf[0] ++;
}
else if(root->right != NULL)
{
map[pf[0]] = '(';
pf[0] ++;
map[pf[0]] = ')';
pf[0] ++;
map[pf[0]] = '(';
pf[0] ++;
go(root->right);
map[pf[0]] = ')';
pf[0] ++;
}
}
char* tree2str(struct TreeNode* root)
{
go(root);
map[pf[0]] = '\0';
pf[0] ++;
return map;
}
今天的每日 为啥会错
他说我编译错误捏
https://i.imgur.com/ASpoxsY.png
作者: Wardyal (Wardyal)   2023-12-08 15:03:00
你把大小移出来设定一个int值再放到malloc里面C不知道可不可以像你这样宣告
楼主: oin1104 (是oin的说)   2023-12-08 15:05:00
还是不行
作者: Wardyal (Wardyal)   2023-12-08 15:06:00
这是C吗 malloc是这样用的吗喔 没事
楼主: oin1104 (是oin的说)   2023-12-08 15:07:00
是 这是c应该是这样D:
作者: ririoshi (角落住民)   2023-12-08 15:11:00
直接拿initializer element is not constant去谷歌
作者: Wardyal (Wardyal)   2023-12-08 15:13:00
喔 看到了你把宣告这个map的东西丢到function或是main里面
作者: NCKUEECS (小惠我婆)   2023-12-08 15:14:00
malloc不能在global吧 吗
作者: Wardyal (Wardyal)   2023-12-08 15:14:00
对阿 好像是
楼主: oin1104 (是oin的说)   2023-12-08 15:33:00
我改好了 我把宣告留在外面然后再main程式里面设定那个东西 谢谢大家

Links booklink

Contact Us: admin [ a t ] ucptt.com