一个关于char*指针的问题 char * aa() { const char * bb = "fdsfads"; return bb; } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比较好的方法是:1、在主函数中申请缓冲区;2、把缓冲区的首地址传入子函数中;3、在子函数中可能会操作缓冲区;4、子函数返回后,缓冲区的内容已经改变了。程序如下:void test( char * pBuf ){ strcpy( pBuf , "大象、大象,你的鼻子为什么那么长?" );}main(){ char szBuf[100]={0}; test( szBuf ); printf( "%s\n" , szBuf );} char * aa(){ char * bb = "fdsfads"; return bb;}这个bb是个临时变量,当函数执行完了就会销毁。用临时变量作为返回值,会造成不稳定。 char * bb = "fdsfads"; 是指向某常量,虽然指针bb被销毁,但是它被返回的内存值,既是那个字符串的值依然是存在内存中的。 char * aa(char * bb) { bb = "fdsfads"; return bb; } 同意zaodt的说话.平时也是这样用的. 这个做法没有任何问题,因为字符串常量"fdsfads"的那片内存任何时候都不能被覆盖 呵!!这个程序是肯定有问题,就是生命期的问题,bb,"fdsfads"是局部变量,当它被传出来时,就被析构,所以就没有值了, 请教高手们:MFC的对话框中怎么画一条线 如何用vc6,ado来获取access表的属性的名称和类型呀 接口上有HWND参数,就不能跨进程传递接口了,为什么? 求助:如何在VC中查找当前计算机上的所有用户名(20points) 深圳 南山 科技园 大冲 房子出租 大伙帮帮忙!CSocket在线程中接收数据的问题 能否利用线程对循环进行控制 VC++会过时吗? 多文档下如何增加一个视图 在应用程序中始何动态联接SQL SERVER数据库(ADO方式) 重复定义问题 各位急求
比较好的方法是:1、在主函数中申请缓冲区;2、把缓冲区的首地址传入子函数中;3、在子函数中可能会操作缓冲区;4、子函数返回后,缓冲区的内容已经改变了。
程序如下:void test( char * pBuf )
{
strcpy( pBuf , "大象、大象,你的鼻子为什么那么长?" );
}main()
{
char szBuf[100]={0};
test( szBuf );
printf( "%s\n" , szBuf );
}
char * aa()
{
char * bb = "fdsfads"; return bb;
}
这个bb是个临时变量,当函数执行完了就会销毁。用临时变量作为返回值,会造成不稳定。
是指向某常量,虽然指针bb被销毁,但是它被返回的内存值,既是那个字符串的值依然是存在内存中的。
{
bb = "fdsfads"; return bb;
}
平时也是这样用的.
这个做法没有任何问题,因为字符串常量"fdsfads"的那片内存任何时候都不能被覆盖