博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
memset 导致的段错误(segmentation fault)
阅读量:5299 次
发布时间:2019-06-14

本文共 701 字,大约阅读时间需要 2 分钟。

在调试Minixml库时,定义了一个结构体:

struct ssid_info_s{

std::string wl_ssid_name;

std::string wl_ssid_mac;
std::string wl_wpa_psk;
bool wl_bss_enabled;
unsigned int wl_sta_num;
unsigned int wl_maxassoc;
bool wl_hide;
bool wl_radio;
bool wl_isolate;
unsigned int wl_pwr_percent;
unsigned int wl_bw;
unsigned int wl_band;
unsigned int wl_nmode;
unsigned int wl_auth_mode;
unsigned int wl_channel;
};

做类似以下操作:

void fun(){

struct ssid_info_s ssid_info;

memset(&ssid_info, 0, sizeof(structs sid_info_s));

printf("111111\n");}

没有立即引起段错误(后面的printf仍然有输出),反而在函数返回的时候出发了段错误。

这里涉及到sizeof(std::string )的问题,依赖于标准库的在不同平台的实现,而这个求出来的大小不是我们期望的string对象的字符长度,所以导致memset引发段错误。

转载于:https://www.cnblogs.com/programmer-wfq/p/5853851.html

你可能感兴趣的文章
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>
1007. Maximum Subsequence Sum (25)
查看>>
iframe的父子层跨域 用了百度的postMessage()方法
查看>>
图片生成缩略图
查看>>
动态规划 例子与复杂度
查看>>
查看oracle数据库的连接数以及用户
查看>>
【数据结构】栈结构操作示例
查看>>
中建项目环境迁移说明
查看>>
三.野指针和free
查看>>
activemq5.14+zookeeper3.4.9实现高可用
查看>>
TCP/IP详解学习笔记(3)IP协议ARP协议和RARP协议
查看>>
简单【用户输入验证】
查看>>
python tkinter GUI绘制,以及点击更新显示图片
查看>>
HDU4405--Aeroplane chess(概率dp)
查看>>
CS0103: The name ‘Scripts’ does not exist in the current context解决方法
查看>>
20130330java基础学习笔记-语句_for循环嵌套练习2
查看>>
Spring面试题
查看>>
窥视SP2010--第一章节--SP2010开发者路线图
查看>>