# Accessing Members in the Dynstruct
> [HTML Version](accessingmembers.htm)
This example continues from the previous one in which we retrieved the layout of the dynstruct ST\_TEST into a flddefs() array, and then created a simple array, fnames\$(), of member names. Here we’ll bind the defined dynstruct to a dynstruct variable, make assignments to members via the Simple Indirect syntax, and then retrieve members using the Indirect Deferred syntax with the help of the fnames\$() array.
map1 status,i,4 \! status variable
map1 dstest, dynstruct \! dynstruct variable
map1 fields,i,4 \! # fields (see previous example)
map1 i,i,2 \! loop variable
dimx flddefs(10),ST\_FLDDEF \! array of field info (see prev example)
dimx fnames\$(0), T\_MAX\_DYNAME, auto\_extend \! array of field names (see prev)
status = Fn'Dynst'Bind("ST\_TEST", dstest) \! bind ST\_TEST Dynstruct to dstest
if status = 0 then \! success
\! samples assignments using simple indirect syntax
dstest.sku = "SKU12345"
dstest.qty = 2
dstest.price.retail = 1.99
dstest.notes(1) = "steal this product"
dstest.notes(2) = "and live in infamy"
\! sample retrieval/display using indirect deferred syntax
for i = 1 to fields
? dstest.@fnames\$(i) \! warning: see notes below
next i
endif
Although the indirect deferred system is very convenient and indeed essential if the goal is to write totally generic code without any hard-coded references to specific dynamic structure members, there are a couple of complications which need to be considered when iterating through the fields by name; see the subtopics noted below.
**Subtopics**
- [Multi-level field structures](multi-levelfieldstructures.htm.md)
- [Array members](arraymembers.htm.md)