乙個小問題,如何用函式修改變數的值

2021-08-25 20:16:16 字數 683 閱讀 8082

今天寫二叉樹的時候遇到乙個小問題,寫了乙個create_node函式用來建立乙個二叉樹的節點。**如下:

void create_node(node_t **pnode) 

node_t *tmp;

tmp = *pnode;

tmp = (node_t *)malloc(node_t);

tmp->data = 3333;

用如下方式呼叫:

node_t *node = null;

create_node(&node);

我的目標是建立乙個節點,資料為3333,然後把node指向該節點,可是,函式呼叫結束後,node依然為null

我們都知道,要想通過函式修改變數的值,必須把該變數的位址做為引數傳給函式使用,這裡我的確把node變數的位址

傳給了create_node,但是create_node使用指標的方式不正確:程式只修改了區域性變數tmp的值,沒有影響到pnode指標所

指向的指標,即沒修改node指標,正確的方式是:

void create_node(node_t **pnode) 

node_t *tmp;

tmp = (node_t *)malloc(node_t);

tmp->data = 3333;

*pnode = tmp;

先建立節點,然後把node指向這個節點。

乙個變數賦值的小問題

create table a a varchar 10 insert into a select a insert into a select a insert into a select b insert into a select b insert into a select c insert ...

建構函式的乙個小問題

精簡過的 兩個建構函式如下 string string string string int n 如果我這樣呼叫 string s0 a cout endl s0 s0 endl 列印出97個0,在vc上除錯發現呼叫的是 string string int n 建構函式 如果這樣呼叫 string s...

shtml的乙個小問題

新建body.shtml 其 如下 我組成身體 然後建它引用的兩個 html 頁面,head.html 的 如下 我組成頭部 foot.html 和這個問題無關就不貼了,然後瀏覽器訪問 body.shtml 得到的頁面如下圖 恩,沒毛病!等等,怎麼在 我組成頭部 前面有個空格?檢視響應正文我們 看到...