摘要: 柔性数组是C99的扩展,简而言之就是一个在struct结构里的标识占位符(不占结构struct的空间)。声明typedef struct zero_array{ size_t len; void * array[0];}zero_array_t;大小可以用sizeof 看看其大小printf("%d\n",sizeof(zero_array_t));//Debian IA 32 下输出4可以看到其array并没有占用空间。申请空间zero_array_t *ptr = (zero_array_t *)malloc(sizeof(zero_array_t)+sizeof(vo 阅读全文
posted @ 2012-03-20 20:19 westfly 阅读(799) 评论(2) 推荐(0) 编辑
摘要: 今天调试程序,总是遇到segment fault,由于的多线程程序,gdb调试很麻烦,非常不爽,但是Bug还总是在哪里需要解决啊。只得想办法。网上说可以生成core文件,再用gdb调试core,至少可以定位到哪里出错。于是Google。segment fault产生的原因主要是与指针操作相关。《GDB调试core文件样例(如何定位Segment fault) 》详细介绍了相关错误原因View Code 一 造成segment fault,产生core dump的可能原因1.内存访问越界 a) 由于使用错误的下标,导致数组访问越界 b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字 阅读全文
posted @ 2012-03-20 14:38 westfly 阅读(669) 评论(0) 推荐(1) 编辑