首先先簡單的介紹一下local變數
local變數指的是在某個區塊內宣告的變數(像是main,或是你的getrandom都是一個區塊)
宣告的變數會暫時放在stack中,離開區塊後就會被清掉了
所以你的name在離開了getrandom函式的時候,就會不見了
當然也沒辦法回傳給main囉
因為根本沒有這個東西,也當然接收不到
那處理的辦法目前我想到兩種
一種就是你的方式
在函式內跟記憶體要一個空間(也就是你的*r),再把name裡面的東西複製過去
(但是這樣的方式好像很不好,會造成記憶體洩漏? )
另外一種就是在main裡面宣告好一個變數(譬如說k),然後當做getrandom的變數傳進去,
再放進去k,再回傳就可以了
我忘記是不是還有其他更好的辦法可以解決這個問題~如果我有想到再補上~