Lösung eine ungültige Speicheradresse oder null-Zeiger-Dereferenzierung

Schlug meinen Kopf auf diese. Ich kann nicht erhalten eine HTTP-Antwort zuordnen struct.

Ich habe meine Strukturen einrichten, etwa so:

type DataConnect struct {
    Response *Response
}

type Response struct {
    response []byte
    errors   []string
}

Dann ist die Funktion in Frage gelegt, wie dies (gekürzt für bessere Lesbarkeit):

137 func (d *DataConnect) send() bool {

    ...

154    out, err := ioutil.ReadAll(resp.Body)
155    if err != nil {
156        fmt.Println(err)
157    }
158
159    fmt.Printf("%s\n", out) //THIS WORKS
160    d.Response.response = out //THIS DOES NOT WORK
161 }

Tun, die Ergebnisse in die folgende Fehlermeldung:

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x36532]

goroutine 1 [running]:
github.com/DataConnect.(*DataConnect).send(0xc2000af4a0, 0x232a00)
github.com/DataConnect/DataConnect.go:160 +0xc22

Nun, wenn ich eine änderung DataConnect.Response.response zu geben interface{} kann ich speichern erfolgreich, jedoch brauche ich es in []byte als ich später tun werden, eine json-Format.Unmarshal auf den Inhalt.

Hat jemand eine Idee warum das nicht funktioniert?

InformationsquelleAutor Peter | 2013-09-11

Schreibe einen Kommentar