存档

文章标签 ‘内存’

Scanf通过%x(%d)读入char出现栈溢出的诡异问题

2011年7月11日 sigma 4 条评论 7,632 views

昨天使用scanf(fscanf)碰到一个很诡异的问题,问题抽象出来是这样的:

有如下代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	FILE *fin;
	int i;
	unsigned char a[8];
	fin=fopen("test_file","r");

	for(i = 7; i >= 0 ; i--)
//	for(i = 0; i <= 7 ; i++)
	  {
		  fscanf(fin,"%x",a+i);
		  printf("%2x ",a[i]);
	  }
	printf("\n");
	for(i = 7; i >= 0 ; i--)
	  {
		  printf("%2x ",a[i]);
	  }
	printf("\n");
	fclose(fin);
	return 0;
}

其中test_file的内容是:11 22 33 44 55 66 77 88 99 阅读全文…

分类: study 标签: , ,

无觅相关文章插件,快速提升流量