2017-06-04 124 views
1

伙计们我有学生结构,我试图创建Student项目作为*学生。我得到无效内存地址或无指针解除引用错误。Golang指针定义

var newStudent *Student 
newStudent.Name = "John" 

我创建这样的。当我尝试设置任何变量时,我得到相同的错误。我错了什么?

+2

看来,内存来保存一个'Student'不分配。尝试'var newStudent * Student:= new(Student)' –

+0

它工作。非常感谢。 –

回答

5

您需要为Studentstruct分配内存。例如,

package main 

import "fmt" 

type Student struct { 
    Name string 
} 

func main() { 
    var newStudent *Student 

    newStudent = new(Student) 
    newStudent.Name = "John" 
    fmt.Println(*newStudent) 

    newStudent = &Student{} 
    newStudent.Name = "Jane" 
    fmt.Println(*newStudent) 

    newStudent = &Student{Name: "Jill"} 
    fmt.Println(*newStudent) 
} 

输出:

{John} 
{Jane} 
{Jill}