Simple singly linked list implementation in C
In terms for efficiency and concept, the implementation is fine.
It lacks the more interesting functionality such as deleting and inserting items.

The most important missing element is deleting the linked list itself:
when you allocate memory using malloc,
it's important to add functions to clean that up at some point.

Code duplication

In addElement,
the logic of creating a new element is duplicated twice.
This could be easily avoided by moving that logic to another function, for example:

struct Element * createElement(int value) {
    struct Element *newElement;
    newElement = malloc(sizeof(struct Element));

    newElement-&gt;value = value;
    newElement-&gt;nextElement = NULL;
    return newElement;
}


On closer look,
you didn't even really need an extra method,
you could eliminate the duplicated logic by moving the element creation before the if condition:

void add(struct LinkedList *list, int value) {
    struct Element *newElement = createElement(value);
    if(list-&gt;firstElement == NULL) {
        list-&gt;firstElement = newElement;
    } else {
        // ...
        lastElement-&gt;nextElement = newElement;
    }
}


Naming

Most of the names are good and nicely descriptive.
But there are a few exceptions:


getElement: despite its name, this function returns an int, not an Element. So getValue would be better.
lastElement as loop is not so great, as it's typically not referencing the last element. node would be a more common name for the purpose


Trivial simplifications

Some of the functions can be simplified very easily.

For example,
in getElement you really don't need the returnValue variable.
You assign to it right before you return it,
and that's the only use.
So avoid the pointless local variable.
Every variable has the potential of getting misused.
So if a variable has no good purpose to serve, then don't use it.

Another minor point is that instead of iteratedIndex = iteratedIndex + 1 you can write simply ++iteratedIndex.