Question: These two views are inside of `RelativeLayout`. The IDE throws an error there is no `@id/et_pass`, but if I set `@+id/et_pass` it is OK. Why is that?

```
<ImageView 
    android:id="@+id/devider_zero"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@id/et_pass" <!-- Error is here -->
    android:src="@drawable/registration_line" />

<EditText
    android:id="@+id/et_pass"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/devider_first"
    android:background="@android:color/transparent"
    android:layout_gravity="left"
    android:ellipsize="start"
    android:ems="8"
    android:hint="@string/password"
    android:inputType="textPassword"
    android:layout_marginTop="@dimen/register_layout_edittext_margin_top"
    android:maxLines="1" />

```

Answer: 
You did not allocate any memory for the pointer to point at. You can do so like this:

```
int *a = malloc(sizeof(*a));

```

or like this:

```
int value;
int *a = &value;

```

If you allocate with `malloc` then you'll want to call `free` on the pointer when you are finished using it.

Accessing an uninitialized pointer leads to undefined behaviour. In your program it led to segmentation fault, one very common outcome of uninitialized pointer access.
In `int* a;` `a`'s default value is garbage, and points to an invalid memory, you can't assign to that. And assignment like `*a=20;` this is causes an undefined behavior at run time. (syntax wise code is correct so compiled) you may some time get a seg-fault too. 

either do: 

```
int i;
int *a = &i;  // a points to a valid memory that is i
*a = 20;

```

or with dynamic memory allocation using calloc() or malloc() functions. 

```
int *a = malloc(sizeof(int));
*a = 20;

```

Remember dynamic allocated memories we have to deallocate (free) explicitly when we have done with that.