函式形參帶進來的地址
靜態區域性變數地址
區域性變數地址,必須在函式中用malloc()函式進行地址分配
採用全域性變數地址
參考程式碼:
void func1( char *s ) //透過形參返回字串
{
strcpy( s, "hello");
}
char * func1_1( char *s ) //另一種寫法
return s ; //返回形參地址,方便程式呼叫
char * func2( void )
static char s[100]; //不能是非靜態變數,否則,子函式結束,區域性變數被釋放,呼叫者得到一個無效的地址值。
return s ; //返回靜態區域性變數地址,由呼叫者採用相應的指標變數接收返回值,得到字串資料。
char * func3( void )
char *s ;
s=(char *)malloc( 100 );
return s ; //返回s值,該地址需要呼叫者去free()釋放。
//定義全域性變數
char globle_buf[100];
void func4( void )
strcpy( globle_buf, "hello");
char * func4_1( char *s ) //另一種寫法
return globle_buf ; //返回全域性變數地址,方便程式呼叫
函式形參帶進來的地址
靜態區域性變數地址
區域性變數地址,必須在函式中用malloc()函式進行地址分配
採用全域性變數地址
參考程式碼:
void func1( char *s ) //透過形參返回字串
{
strcpy( s, "hello");
}
char * func1_1( char *s ) //另一種寫法
{
strcpy( s, "hello");
return s ; //返回形參地址,方便程式呼叫
}
char * func2( void )
{
static char s[100]; //不能是非靜態變數,否則,子函式結束,區域性變數被釋放,呼叫者得到一個無效的地址值。
strcpy( s, "hello");
return s ; //返回靜態區域性變數地址,由呼叫者採用相應的指標變數接收返回值,得到字串資料。
}
char * func3( void )
{
char *s ;
s=(char *)malloc( 100 );
strcpy( s, "hello");
return s ; //返回s值,該地址需要呼叫者去free()釋放。
}
//定義全域性變數
char globle_buf[100];
void func4( void )
{
strcpy( globle_buf, "hello");
}
char * func4_1( char *s ) //另一種寫法
{
strcpy( globle_buf, "hello");
return globle_buf ; //返回全域性變數地址,方便程式呼叫
}