Ho un blocco disordinato di codice comeC ha un modo stenografico per inizializzare una struct con malloc e impostare i suoi campi?
result = (node*)malloc(sizeof(node));
result->fx = (char*)malloc(sizeof(char) * 2);
result->fx[0]='x'; result->fx[1]='\0';
result->gx = NULL; result->op = NULL; result->hx = NULL;
dove ho inizializzare un elemento di tipo
typedef struct node
{
char * fx; // function
struct node * gx; // left-hand side
char * op; // operator
struct node * hx; // right-hand side
} node;
C'è un modo veloce di fare questo? In altre parole, c'è un modo per fare come farei in C++?
result = new node { new char [] {'x','\0'}, NULL, NULL, NULL };
Purtroppo no. Se vuoi inizializzare tutti i campi con 0, puoi usare 'calloc'. E non digitare il risultato di 'malloc'. –
Se 'fx' sarà sempre malloc'd con le stesse dimensioni, potreste renderlo un array –
Potete chiarire se' 'x'' deve essere hardcoded, o se questo è pseudocodice e volete inizializzarlo ' fx' con dati che sono stati inseriti dall'utente, ad esempio? –