Peter F.: Frage zu C-Strukturen, Arrays

Beitrag lesen

Moin!

In ldap.h ist folgende Struktur definiert:

typedef struct ldapmod {
        int             mod_op;

#define LDAP_MOD_OP                     (0x0007)
#define LDAP_MOD_ADD            (0x0000)
#define LDAP_MOD_DELETE         (0x0001)
#define LDAP_MOD_REPLACE        (0x0002)
#define LDAP_MOD_INCREMENT      (0x0003) /* OpenLDAP extension */
#define LDAP_MOD_BVALUES        (0x0080)
/* IMPORTANT: do not use code 0x1000 (or above),
 * it is used internally by the backends!
 * (see ldap/servers/slapd/slap.h)
 */

char            *mod_type;
        union mod_vals_u {
                char            **modv_strvals;
                struct berval   **modv_bvals;
        } mod_vals;
#define mod_values      mod_vals.modv_strvals
#define mod_bvalues     mod_vals.modv_bvals
} LDAPMod;

Jetzt will ich folgendes machen:

char *my_string = malloc(256);
strnpy(my_string, "TEST", 256);

LDAPMod mod;
mod.mod_op = LDAP_MOD_ADD;
mod.mod_type = "cn";
mod.mod_values = {my_string, NULL}; /* <- */

Dies funktioniert aber nicht - der Compiler meldet in der Zeile <- immer einen Syntaxfehler, ich kann diesen jedoch nicht erkennen. Hat jemand eine Ahnung warum dies so ist?

Danke, Peter