也许这是一个新手问题,但是 C/C++ 中是否有一种方法可以防止函数接受指向局部变量的指针?
考虑这段代码:
int* fun(void)
{
int a;
return &a;
}
编译器将生成一个无法返回指针的警告。现在考虑一下:
int* g;
void save(int* a)
{
g = a;
}
void bad(void)
{
int a;
save(&a);
}
这将在没有警告的情况下通过编译器,这很糟糕。是否有属性或东西可以防止这种情况发生?即类似的东西:
void save(int __this_pointer_must_not_be_local__ * a)
{
g = a;
}
如果有人知道答案,请提前感谢。