Source: cirosantilli/elf-hello-world/sht-strtab

= `SHT_STRTAB`

Sections with `sh_type == SHT_STRTAB` are called string tables.

They hold a null separated array of strings.

Such sections are used by other sections when string names are to be used. The using section says:
* which string table they are using
* what is the index on the target string table where the string starts

So for example, we could have a string table containing:
``
Data: \0 a b c \0 d e f \0
Index: 0 1 2 3  4 5 6 7  8
``

The first byte must be a 0. TODO rationale?

And if another section wants to use the string `d e f`, they have to point to index `5` of this section (letter `d`).

Notable string table sections:
* `.shstrtab`
* `.strtab`