test1:
#include<stdio.h>
void s(char** t)
{
* t = "csdn";
}
main()
{
char* a;
s(&a);
printf("%s", a);
}
test2:
#include<stdio.h>
void s(char** t)
{
char temp[10] = "csdn";
//*t = temp;
//strcpy(*t,temp);
//t=&temp;
}
main()
{
char* a;
s(&a);
printf("%s", a);
}
求助大佬,我現在想把函式中的字串通過指標帶回,test1直接賦值,可以正常回傳。test2中把變數中存盤的字串無法帶回,不管用*t = temp;或者strcpy(*t,temp);或者t=&temp;都不行。求助大佬,謝謝了
uj5u.com熱心網友回復:
指標未分配記憶體
uj5u.com熱心網友回復:
char temp[10]="csdn"這個字符陣列是分配到堆疊上的,子函式退出就銷毀了,當然傳不出去的。應該用malloc分配記憶體,然后才能傳回指標轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/243713.html
標籤:其它技術問題
上一篇:Linux下setlocale( LC_ALL , "zh_CN.GBK" ) 設定失敗
下一篇:資料結構作業,用c語言做
