void GetMemory( char*p )
{
p = (char*) malloc( 100 );
}
void Test( void )
{
char*str = NULL;
GetMemory( str );
strcpy( str, "hello world" );
printf( str );
}
试题4传入中GetMemory(char *p )函数的形参为字符串指针,在函数内部修改形参并不能真正的改变传入形参的值,执行完
char *str = NULL;
GetMemory( str );
{
p = (char*) malloc( 100 );
}
void Test( void )
{
char*str = NULL;
GetMemory( str );
strcpy( str, "hello world" );
printf( str );
}
试题4传入中GetMemory(char *p )函数的形参为字符串指针,在函数内部修改形参并不能真正的改变传入形参的值,执行完
char *str = NULL;
GetMemory( str );
后的str仍然为NULL;
答案:
一般有两种传递方式:
1)值传递----包括(数值传递,指针传递)
2)引用传递
你问题中的指针传递,其实就是值传递:(下面这个你能看懂么)
void GetMemory( char p )
{
p = ‘a’;
}
void Test( void )
{
char str;
GetMemory( str );
pinrtf("%c",str);