Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138170
  • 博文数量: 40
  • 博客积分: 673
  • 博客等级: 上士
  • 技术积分: 426
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-21 14:08
文章分类

全部博文(40)

文章存档

2013年(4)

2012年(36)

我的朋友

分类: C/C++

2012-04-11 20:18:20

今天在调试代码发现一个很诡异的问题:
全局变量:
static nc_tables_t nc_tables[NC_MAX_CLIENT];

static char g_ppc_config[50] = { 0 };
static char g_ppc_status[50] = { 0 };
static char g_key_update[50] = { 0 };
static char g_key_realtime[50] = { 0 };
static char g_key[KEY_LEN] = { 0 };
static char g_iv[KEY_LEN] = { 0 };

发现在程序运行时nc_tables里面的值会被改变,但是找遍整个源程序也没找到是在哪里改变的。
后来发现是由于g_iv和g_key这两个变量在赋值时存在数组越界情况,导致nc_tables里面的值改变。

这个全局变量的内存分布是个什么情况呢?
阅读(980) | 评论(0) | 转发(0) |
0

上一篇:netlink编程

下一篇:linux统计代码行数

给主人留下些什么吧!~~