小v电子技术博文 上海鲤鲸网络科技 小v单片机

Linux下函数传递指针大数据导致segmentation fault问题

  • 时间:2017-3-31
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:319
  • 评论:0
  • 一个函数中调用另外一个函数试,将本地的大数据通过指针传递下去让他进行处理,结果出现segmentation fault  比如在  bool SetstringPlay(char * pi,int length,int x,int y) { 。。。  OsdWriteChar(x,y, pi.width, pi.height,RED_RGB,0,pi,addr); } 结果在OsdWriteChar中出现错误,数据也就1000字节左右,Linux下运行。 后来果断换成结构体的形式。传递结构体,不用指针了 如下,解决问题...

    阅读全文>>

    热门文章 数组名和数组名取地址&

  • 时间:2015-10-23
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:568
  • 评论:0
  • 在C中, 在几乎所有使用数组的表达式中,数组名的值是个指针常量,也就是数组第一个元素的地址。 它的类型取决于数组元素的类型: 如果它们是int类型,那么数组名的类型就是“指向int的常量指针“。        在以下两种场合下,数组名并不是用指针常量来表示,就是当数组名作为sizeof操作符和单目操作符&的操作数时。 sizeof返回整个数组的长度,而不是指向数组的指针的长度。 取一个数组名的地址所产生的是一个指向数组的指针,而不是一个指向某个指针常量的指针。所以&a后返回的指针便是指向数组的指针,跟a在指针的类型上是有区别的。        请看下面的例子: ...

    阅读全文>>

    热门文章 推荐一篇关于软件编程写的不错的文章

  • 时间:2015-8-15
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:799
  • 评论:0
  • 本片文章亲自操刀所写,绝非网上粘贴复制舆论大众,哗众取宠。以自己大学四年专业学习经历,和工作三年经验,有感而发,目前不能自称高手,只是小有所成,为那些在软件编程道路上迷茫的大学生们和同行业者,写一些个人感悟和想法,希望你们从中有所收获,在软件编程的道路上走的更高更远,有所成就。     我的专业是测控技术与仪器,可能很多人想软件编程应该是计算机专业才学的,我们专业属于跨学科专业,介于计算机,自动化,机械相关性的综合学科,最终的工作岗位是由自己选择的。大学四年自己自学51单片机,从最简单的LED流水灯学起,在软件编程领域一直走了7年,工作后才发现自己大学四年的自学过程是,满怀热情,学习路线错误。我这里所讲的软件编程主要集中是嵌入式领域基于各种微控制器编程。  ...

    阅读全文>>

    热门文章 让你不再害怕指针

  • 时间:2015-2-26
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:805
  • 评论:0
  • 5、数组和指针的关系 数组的数组名其实可以看作一个指针。看下例: 例九: intarray[10]={0,1,2,3,4,5,6,7,8,9},value; value=array[0]; //也可写成:value=*array; value=array[3]; //也可写成:value=*(array+3); value=array[4]; //也可写成:value=*(array+4); 上例中,一般而言数组名array代表数组本身,类型是int[10],但如 果把array看做指针的话,它指向数组的第 0个单元,类型是 int* ,所指向的类型是数组单元的类型即int。因此*array等于0就一点 也不奇怪了。同理,array+3是一个指向数组第3个单...

    阅读全文>>

    热门文章 如何将两个数组包含在第三个数组中通过指针分别调用

  • 时间:2015-2-2
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:857
  • 评论:0
  • 大概意思是将两个不同的数组a[],b[]包含在第三个数组c[]中,c[0]指的就是a数组,c[1]指的就是b数。 比如a[]={12,2,5,4};那么c[0].a[0]=12; 源码实例 #include<stdio.h> #include<stdlib.h> #include<math.h> #include<time.h> #include<fcntl.h> #define u8 unsigned char typedef struct {   u8 KeyCurrentIndex;//当前状态索引号   u8 KeyEnterState;...

    阅读全文>>

    热门文章 c语言定义结构体指针

  • 时间:2015-1-28
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:785
  • 评论:0
  • int main() { typedef struct {   u8 KeyCurrentIndex;//当前状态索引号   u8 KeyEnterState;//按下【enter】键时转向的索引号   u8 KeyCancelState;//按下【cancel】键时转向的索引号   u8 KeyUpState;//按下【up】键时转向的索引号   u8 KeyDownState;//按下【down】键时转向的索引号   void (*CurrentOperate)(); //当前状态下执行的功能操作 }KbdTabStruct; const KbdTabStruct  KBD[]= {...

    阅读全文>>

    热门文章 结构体指针的应用

  • 时间:2015-1-28
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:758
  • 评论:0
  • 一个用得比较多的是结构体指针。如果只把结构体当成一个数据的集合的话,那么结构体并没有什么好用的。在处理二进制格式的数据,尤其是网络数据的数据包的时候,结构体指针非常好用。比如我们定义一个以太网帧首部的格式 struct eth_header { unsigned char dst[6]; unsigned char src[6]; unsigned short int ptype; }; 我们用socket读到一段二进制数据的时候,把指向该缓存的指针,用一个强制类型转换变成一个struct eth_header*类型的指针,那么这个数据包的内容就可以很容易的读出来了。比如读源地址,只需要这样 unsigned char* buffer = ....... ...

    阅读全文>>

    热门文章 单片机c语言中菜单系统源码分析-const定义结构体数组初始化

  • 时间:2015-1-22
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:1455
  • 评论:0
  • 最近在学习单片机的菜单系统时,发现有这么一些代码,定义了4个按键,确认键,返回键,上键,下键,先贴出来在vc里边建的,先定义一个结构体KbdTabStruct,在用结构体定义一个const型的数组KBD[],那么数组的每一个成员对应的原本结构体的数则是它的初始化值,并且这个值初始化后就成立,以后不再改变。比如说KBD[0].KeyCurrentIndex所对应的则是数组table中成员0 的值,这些值就是它的初始化值,相当于KBD[0].KeyCurrentIndex=0,但如果这样写N层的菜单,如此定义肯定麻烦,所以用这样的数组实现。 int main() { typedef struct {   u8 KeyCurrentIndex;//当前状态索引号 ...

    阅读全文>>

    热门文章 C 语言 程序内存分配

  • 时间:2015-1-15
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:856
  • 评论:0
  • (1) 内存分区状况 栈区 (stack) :  -- 分配, 释放方式 : 由编译器自动分配 和 释放; -- 存放内容 : 局部变量, 参数; -- 特点 : 具有 后进先出 特性, 适合用于 保存 回复 现场; 堆区 (heap) :  -- 分配, 释放方式 : 由程序员手动 分配(malloc) 和 释放(free), 如果程序员没有释放, 那么程序退出的时候, 会自动释放; -- 存放内容 : 存放程序运行中 ...

    阅读全文>>

    热门文章 如何将将字库或图片以数组的形式储存在.c 文件中

  • 时间:2015-1-5
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:890
  • 评论:0
  • 如果你所用的片上flash为20kB,而需要的汉字库和啊撒可码总共就有4-5kB,又不想用外部flash来储存,当然你是高手的话,下面的你就不用看了,写给新手的。 我们新建一个xx.c文件,利用工具将我们所需要的汉字,字符,标点,生成16进制的数组码表,如下, #define  hzNum  109 const unsigned char  hzIndex[218] = { 0xc9,0xf9,0xd1,0xb8,0xb5,0xe7,0xd7,0xd3, 0xc9,0xe8,0xd6,0xc3,0xbf,0xec,0xb...

    阅读全文>>

    热门文章 c语言结构体数组初始化

  • 时间:2014-12-31
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:876
  • 评论:0
  • 最近看一段代码有所迷惑,先简单总结一下。有关结构体数组初始化的问题 struct  _m_usmart_nametab usmart_nametab[]= { #if USMART_USE_WRFUNS==1 //如果使能了读写操作 (void*)read_addr,"u32 read_addr(u32 addr)", (void*)write_addr,"void write_addr(u32 addr,u32 val)",   #endif (void*)delay_ms,"void delay_ms(u16 nms)", (void*)delay_us,"void delay_us(u32 nus)",   (void*)...

    阅读全文>>

    热门文章 c语言结构体定义结构体

  • 时间:2014-12-31
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:761
  • 评论:0
  • 代码1 定义结构体 _m_usmart_dev struct  _m_usmart_dev {  struct _m_usmart_nametab *funs; //函数名指针  void (*init)(u8);    //初始化  u8 (*cmd_rec)(u8*str);   //识别函数名及参数  void (*exe)(void);     //执行  void (*scan)(void);     &nbs...

    阅读全文>>

    热门文章 学习uip代码分析时遇到的c语言问题

  • 时间:2014-12-29
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:1080
  • 评论:2
  • 在进一步看uip的代码时,遇到了一个问题,可能是自己C语言知识不够扎实,特此总结一下 以下是http协议处理输入数据并更新页面显示的代码   static PT_THREAD(handle_input(struct httpd_state *s)) {       char *strx; u8 dbuf[17]; PSOCK_BEGIN(&s->sin);   PSOCK_READTO(&s->sin, ISO_space);   if(strncmp(s->inputbuf, http_get, 4)!=0)PSOCK_CLOSE_EXIT(&...

    阅读全文>>

    热门文章 指针数组与数组学习

  • 时间:2014-12-23
  • 作者:小v
  • 分类: 单片机c语言
  • 浏览:664
  • 评论:0
  • 今天看见一段代码,有点懵懂,如下 Get_arg(Buff, &argc, argv); static void Get_arg(U8 *cmdline, U8 *argc, U8 **argv) { #define STATE_WHITESPACE 0 #define STATE_WORD 1 U8 *c = NULL; int state = STATE_WHITESPACE; int i = 0; *argc = 0; if(strlen((const char*)cmdline) == 0) {//命令字符串为空 return; } c = cmdline; while(*c != '\0') ...

    阅读全文>>

    返回顶部| 首页| 手气不错| 捐赠支持| 自定义链接| 自定义链接| 自定义链接| 手机版本|后花园

    Copyright © 2014-2017   京ICP备14059411 Copyright 2014-2015 上海鲤鲸网络科技工作室 版权所有 All Rights Reserved

    sitemap