﻿# V3528\. AUTOSAR\. The address of an object with local scope should not be passed out of its scope\.

This diagnostic rule is based on the software development guidelines developed by [AUTOSAR](https://www.autosar.org/) \(AUTomotive Open System ARchitecture\)\.

Copying an object's address to a pointer/reference with a long lifetime may cause that pointer/reference to become "dangling" after the original object has ceased to exist\. This is a case of memory safety violation\. Using data referenced by a "dangling" pointer/reference leads to undefined behavior\.

First example of non\-compliable code:

```cpp
int& Foo( void )
{
  int some_variable;
  ....
  return some_variable;
}
```

Second example of non\-compliable code:

```cpp
#include <stddef.h>
void Bar( int **ptr )
{
  int some_variable;
  ....
  if (ptr != NULL)
    *ptr = &some_variable;
}
```