haa*_*ael 5 c pointers compiler-warnings
也许这是一个新手问题,但在C/C++中是否有一种方法可以阻止函数接受指向局部变量的指针?
考虑以下代码:
int* fun(void)
{
int a;
return &a;
}
Run Code Online (Sandbox Code Playgroud)
编译器将生成一个警告,指示无法返回指针.现在考虑一下:
int* g;
void save(int* a)
{
g = a;
}
void bad(void)
{
int a;
save(&a);
}
Run Code Online (Sandbox Code Playgroud)
这将通过编译器而不会发出警告,这很糟糕.是否有某种属性或某些东西可以防止这种情况发生?就像这样:
void save(int __this_pointer_must_not_be_local__ * a)
{
g = a;
}
Run Code Online (Sandbox Code Playgroud)
如果有人知道答案,请提前致谢
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |