结构体赋值运行时出现段错误(核心已转储)

2023-05-16

今天给嵌套结构体赋值的时候编译没问题,但是运行总是段错误,后来发现是忘了分配动态内存,记得用calloc分配,实际结构体嵌套比较复杂,在这里举个简单的例子给大家看看,引以为戒。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>

typedef int	 MsgCountltev_t;
typedef int	 MinuteOfTheYearltev_t;

typedef struct function
{
	MsgCountltev_t	 msgCnt;
	MinuteOfTheYearltev_t	*timeStamp;
}SPAT_t;

int main()
{
	SPAT_t *spat;
	spat = calloc(1, sizeof(SPAT_t));			//一定要记得分配动态内存,不然直接段错误
	
	spat->msgCnt = 10000;
	printf("%d\n", spat->msgCnt);

	spat->timeStamp = calloc(1, sizeof(MinuteOfTheYearltev_t));		//分配内存
	*spat->timeStamp = 12345;
	printf("%d\n", *spat->timeStamp);
	return 0;
}

另外附上,calloc和malloc的区别:calloc在动态分配完内存后,自动初始化该内存空间为零,malloc不初始化,里边数据是随机的垃圾数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

结构体赋值运行时出现段错误(核心已转储) 的相关文章

  • 如何在Ubuntu 20.04上安装Wine 5.0

    如何在Ubuntu 20 04上安装Wine 5 0 Wine是一款开源的应用程序 xff0c 它提供了在类似Unix的操作系统上运行为微软Windows开发的软件的兼容性 在Wine的帮助下 xff0c 你可以在Linux系统上运行Win
  • 如何在Ubuntu 20.04上安装Kvm

    在继续安装之前 xff0c 请确保您的Ubuntu主机支持KVM虚拟化 系统应具有带VT x xff08 vmx xff09 的Intel处理器或具有AMD V xff08 svm xff09 技术支持的AMD处理器 运行以下grep命令以
  • 安装KVM+安装虚拟机+配置桥接网络

    由于很久没有玩虚拟机了 xff0c 有些生疏 xff0c 百度了一下 xff0c 结果百度出来的文章动不动就让安装一大堆东西 xff0c 不管用上用不 xff0c 而且我还惊奇的发现这些让安装一大堆东西的博客基本都相同 xff0c 你说奇不
  • win10通过pe修复uefi引导后bootmanage出现两个引导项很烦人

    解决办法 xff1a 1 xff0c 进入win10桌面后按win 43 r召唤出运行窗口 2 xff0c 输入msconfig 按回车 3 xff0c 删除不想要的引导选项 重启应该就可以直接进入系统了
  • 安装黑苹果遇到的问题(为什么出现禁止符号,为什么无法从硬盘启动)

    博客网址 xff1a https macx top 10442 html
  • macOS原生支持NTFS读写的方法

    详细流程 xff1a 插上硬盘后 xff0c 查看你的硬盘名称 xff0c 这里假设名称是AngleDisk 打开Applications的Terminal在终端输入sudo nano etc fstab 敲击回车 现在你看到了一个编辑界面
  • Mac M1 安装brew 国内源

    1 command 43 space 打开搜索 2 输入terminal找到终端点击打开 3 拷贝以下代码放置到终端并回车 bin zsh c 34 curl fsSL https gitee com huwei1024 HomebrewC
  • 日语的-自-他动词区分

  • Sophus库安装和使用

    1 前言 Sophus库是一个较好的李群和李代数的C 43 43 库 xff0c 它很好的支持了SO 3 so 3 SE 3 和se 3 Sophus库是基于Eigen基础上开发的 xff0c 继承了Eigen库中的定义的各个类 因此在使用
  • 打开cmd后默认进入conda的base环境的解决办法

    解决方案 xff1a 命令行执行 xff1a xff08 取消默认加载环境 xff09 conda config set auto activate base false 次级解决方案 xff1a 修改 vim xff5e bashrc x
  • 数据库范式的一些理解

    一 假设一个表R 61 X xff0c Y xff0c Z xff0c 其中X Y Z是三个属性组 xff0c X是码 再假设R不符合3NF xff0c 即 xff1a X gt Y xff0c Y gt Z xff0c 其中Y不是码 xf
  • matlab修改默认当前文件夹

    操作步骤 找到 matlabrc m 文件 cd 39 Matalb的安装路径 39 cd toolbox local 编辑 matlabrc m 文件 在文件末尾添加打开时要转到的目录 xff0c 比如 xff1a cd 39 C Use
  • nvm下载各node版本时使用淘宝的镜像

    在nvm安装目录下的settings txt里 xff0c 添加如下两行代码 xff1a node mirror https npm taobao org mirrors node npm mirror https npm taobao o
  • conda清除无用安装包

    conda clean p 删除缓存 conda clean y all 删除pkgs目录下所有的无用安装包及cache
  • Node.js 获取GET、POST提交的数据

    表单提交过来的数据有两种方法 xff0c 一种是GET方式提交 xff0c 这种提交方法会把表单需要传输的数据写在url上 xff0c 一起带过去 xff0c 另一种是POST方式提交 xff0c POST方式提交会把表单数据携带在requ
  • 如何理解 JS 中的异步

    了解异步前 xff0c 先得知道什么是单线程 单线程 只有一个线程 xff0c 只能做一件事 代码示例 console log 1 alert 39 hello 39 console log 2 点击确认后 xff0c 才会打印出 2 JS
  • nodejs的特点(讲解的很清晰)

    1 异步I O 在Node中 xff0c 绝大多数的操作都以异步的方式进行调用 Ryan Dahl排除万难 xff0c 在底层构建了很多异步I O的API xff0c 从文件读取到网络请求等 xff0c 均是如此 这样的意义在于 xff0c
  • 如何优雅地在word中插入代码

    打开这个网址 xff1a https highlightcode com
  • conda install和pip install有什么区别?

    pip pip install xxx 在特定环境里使用pip xff0c 下载的包会存在特定环境的目录里面 xff0c 例如 D Anaconda3 envs nlp Lib site packages fasttext 使用pip un
  • Ubuntu下安装Clion

    前言 CLion 是一款由 JetBrains 开发的 C 43 43 集成开发环境 xff08 IDE xff09 xff0c 它拥有许多强大的功能 xff0c 如代码自动完成 调试器 版本控制等等 CLion本身是收费软件 xff0c

随机推荐