cob*_*obp 5 c memory-management
我遇到了很多函数在一个遗留应用程序中返回char指针.其中一些返回指向本地字符数组的指针.在几次调用(不是立即!)之后,它似乎会导致崩溃.请参阅下面的用法
char *f1(){
char buff[20];
char *ptr;
----
----
ptr=buff;
return ptr;
}
---
---
f2(f1());
Run Code Online (Sandbox Code Playgroud)
f1()返回一个指针局部变量,然后将其传递给另一个函数.当我在MS DEV中使用_DEBUG模式编译时,我直接崩溃了.但是在发布模式下,它不会导致立即崩溃,但在进行大量此类调用后可能会发生这种情况.
当我修改下面的用法时,它没有任何问题.以下用法是否安全?
strcpy(arr,f1()); /* arr is fixed char array*/
f2(arr);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6372 次 |
最近记录: |