Ich habe einen unordentlichen Code-Block wieHat C eine Kurzform, um eine Struktur mit malloc zu initialisieren und seine Felder zu setzen?
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;
, wo ich ein Element vom Typ
typedef struct node
{
char * fx; // function
struct node * gx; // left-hand side
char * op; // operator
struct node * hx; // right-hand side
} node;
Gibt es eine Kurzform zu tun, dass initialisieren? Mit anderen Worten, gibt es einen Weg zu tun, wie ich es in C++ tun würde?
result = new node { new char [] {'x','\0'}, NULL, NULL, NULL };
Leider nicht. Wenn Sie alle Felder mit 0 initialisieren möchten, können Sie 'calloc' verwenden. Und tippen Sie nicht das Ergebnis von "malloc". –
Wenn 'fx' immer mit der gleichen Größe malloc'd ist, dann könnten Sie es zu einem Array machen –
Können Sie klären, ob '' x'' hardcoded sein soll, oder ob es Pseudocode ist und Sie initialisieren wollen ' fx' mit Daten, die beispielsweise vom Benutzer eingegeben wurden? –