Ich habe diese Funktion:Dereferenzieren Strukturinstanz Element mit Strukturinstanz Zeiger
static pair_t * // not visible outside this file
pair_new(const int key)
{
pair_t *pair = malloc(sizeof(pair_t));
if (pair == NULL) {
// error allocating memory for pair; return error
return NULL;
} else {
printf("key is %d\n",key);
*(pair->key) = key;
*(pair->count) = 1;
pair->next = NULL;
return pair;
}
}
aber die Art, wie ich zu dereferenzieren das Schlüsselelement der Instanz des Paares bin versucht wird, mir einen seg Fehler geben. Ich denke es ist, weil "Paar" ein Zeiger ist.
das Paar Struktur wie folgt definiert ist:
typedef struct pair {
int *key; // search key for this item
int *count; // pointer to data for this item
struct pair *next; // children
} pair_t;
Irgendwelche Vorschläge, wie man den Wert von key
richtig viel
danke, ich habe hinzugefügt: pair-> key = malloc (sizeof (int)); Paar-> count = malloc (sizeof (int)); und es scheint jetzt zu arbeiten – dirtyb
@dirtyb Gern geschehen. Sie können auch [in Erwägung ziehen, eine Antwort zu akzeptieren, die Ihnen geholfen hat] (http://meta.stackexchange.com/q/5234/244062). –