go 结构体赋值 invalid memory address or nil pointer dereference
go 指针结构体赋值
- 1、前言
- 2、举例
- 3、分析
- 4、解决
1、前言
日常生产中,当我们使用go指针结构体赋值时,会报出invalid memory address or nil pointer dereference错误,那错误是如何产生的呢,我们该如何解决呢
2、举例
看一下例子
package mainimport "fmt"type User struct {UserName string `json:"user_name"`Password string `json:"password"`
}
func main() {var user *Useruser.UserName = "张三"user.Password = "zhangsan"fmt.Println(user)
}
当我们运行这个实例时,就会发现错误
3、分析
我们要了解指针,指针地址在 Go 中 * 代表取指针地址中存的值,& 代表取一个值的地址。对于指针,我们一定要明白指针储存的是一个值的地址,但本身这个指针也需要地址来储存,初始化指针,指针变量的地址为0xc00009a008, 指针值为nil此时,i为nil,系统没有给*i分配地址,相当于给一个nil地址赋值,肯定会出错
4、解决
直接给我们定义的指针结构体初始一下内存地址,当我们赋值的时候指向我们重新分配的地址,就可以解决这个问题啦
package mainimport "fmt"type User struct {UserName string `json:"user_name"`Password string `json:"password"`
}
func main() {var user *Useruser = new (User)user.UserName = "张三"user.Password = "zhangsan"fmt.Println(user)
}
正常运行
go 结构体赋值 invalid memory address or nil pointer dereference相关推荐
- runtime error: invalid memory address or nil pointer dereference
runtime error: invalid memory address or nil pointer dereference 解决方法: tcallback((unsigned char*)pac ...
- v2ray服务端启动出现panic: runtime error: invalid memory address or nil pointer dereference
panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentatio ...
- 解决docer login报错 panic: runtime error: invalid memory address or nil pointer dereference
问题描述 不知道自己做了什么操作,然后进行docker login的时候,突然出现以下错误 panic: runtime error: invalid memory address or nil po ...
- panic: runtime error: invalid memory address or nil pointer dereference
只可以给索引1和3赋值,因为只有它们分配了内存,才可以赋值,如果我们给索引0赋值,运行的时候,会提示无效内存或者是一个nil指针引用. 解决办法 :我们要先给索引0分配内存,然后再进行赋值修改.
- golang怎么给空结构体赋值
一.前言 最近没少使用golang,也没经过系统的学习,直接就上去开发了,遇到不少坑也学到不少东西,本次记录下给空结构体赋值的问题. 二.案例 1.结构体结构及错误 type Test struct ...
- C语言结构体赋值和有指针成员的结构体赋值
1 结构体赋值 #include <windows.h>struct MyStruct {int a;int b;char c[20]; };int APIENTRY WinMain(H ...
- 【C语言】结构体赋值
结构体在 C 程序中使用的较为频繁,能对数据有一定的封装的作用.对一个结构体赋值时,经常采用的方式是,分别对其成员变量赋值.那么能否将一个结构体用赋值号("=")直接赋值给另一个结 ...
- 1006.c++中结构体赋值碰到的bug
在项目调试过程中,碰到 一个这样的问题,c++结构体赋值问题.在c语言中,一个结构体变量是可以赋值给另外一个结构体变量的.在c++情况有所变化,仅此记录一下. 此为一个概率事件. //定义接收数据数据 ...
- 结构体复数相乘c语言,复数乘法中的结构体赋值实现代码
复数乘法中的结构体赋值实现代码 废话不多说,直接上代码 复制代码 代码如下: #include using namespace std; typedef struct { double real; d ...
最新文章
- 《AI系统周刊》第4期:DNN模型压缩之剪枝(Pruning)
- 买了云服务器和域名怎么进行解析
- mysql搭建主主_mysql主主配置
- PageRank算法简介及Map-Reduce实现
- NHibernate3.0剖析:Query篇之NHibernate.Linq标准查询
- android检测是否跳出应用程序,android – 检测应用程序何时打开/恢复
- Android AsyncTask异步线程
- bitnami mysql_最新 Bitnami redmine安装与配置
- lumion渲染太慢、卡顿怎么办?分享3个加快渲染的小技巧
- 2020年度第十届吴文俊人工智能科学技术奖获奖名单出炉!李德毅院士获最高成就奖...
- Pytorch文本分类
- 【计算机网络】Socket聊天室程序
- 肖sir__面试就业课___数据库
- Java程序员如何成为优秀的架构师
- Unity-模型导入-材质
- 【微信小程序学习】搜索音乐页面代码实现
- PTC creo 3.0 安装教程
- 线性表操作(线性表)
- Electron如何支持ESM模块
- 安逸云中小云厂商机遇