# add\_struc\_member

Add structure member.

```
This function can be used in two forms.
First form:
long add_struc_member(long id, string name, long offset, long flag,
                    long typeid, long nbytes);
Second form:
long add_struc_member(long id, string name, long offset, long flag,
                    long typeid, long nbytes,
                    long target, long tdelta, long reftype);

arguments:
  id      - structure type ID
  name    - name of the new member
  offset  - offset of the new member
            -1 means to add at the end of the structure
  flag    - type of the new member. Should be one of
            FF_BYTE..FF_PACKREAL (see above)
            combined with FF_DATA
  typeid  - if is_struct(flag) then typeid specifies
            the structure id for the member
            if is_off0(flag) then typeid specifies
            the offset base.
            if is_strlit(flag) then typeid specifies
            the string type (STRTYPE_...).
            if is_stroff(flag) then typeid specifies
            the structure id
            if is_enum(flag) then typeid specifies
            the enum id
            Otherwise typeid should be -1
  nbytes  - number of bytes in the new member
the remaining arguments are allowed only if isOff0(flag) and you want
to specify a complex offset expression
  target  - target address of the offset expr. You may specify it as
            -1, ida will calculate it itself
  tdelta  - offset target delta. usually 0
  reftype - see REF_... definitions
returns: 0-ok, otherwise error code TERR_...

long add_struc_member(long id, string name, long offset, long flag, long typeid, long nbytes,
                      long target, long tdelta, long reftype);

// Constants used with begin_type_updating() and end_type_updating()
#define UTP_ENUM      0
#define UTP_STRUCT    1
```

See more: [STRTYPE\_...](/9.0/developer-guide/idc/idc-api-reference/alphabetical-list-of-idc-functions/283.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hex-rays.com/9.0/developer-guide/idc/idc-api-reference/alphabetical-list-of-idc-functions/398.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
