有人可以教我一下嗎

作者: 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