首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

数组越界的几个经典实例

2012-08-21 
数组越界的几个经典范例//1.下面代码有什么错误?Void test1() {char string[10]char *str10123456789

数组越界的几个经典范例
//1.下面代码有什么错误?
Void test1()
{
 char string[10];
 char *str1="0123456789";
 strcpy(string, str1);

}


//--------------------------------------
2.下面代码有什么问题?
Void test2()
{
  char string[10], str1[10];
  for(i=0; i<10;i++)
  {
     str1[i] ='a';
  }
  strcpy(string, str1);
}


//--------------------------------------
//3.下面代码有什么问题?
Void test3(char* str1)
{
  char string[10];
  if(strlen(str1)<=10)
  {
    strcpy(string, str1);
  }
}


//上面几个问题都是数组越界
//strcpy拷贝的结束标志是查找字符串中的/0 因此如果字符串中没有遇到/0的话 会一直复制,直到遇到/0,上面的123都因此产生越界的情况
 
//建议使用 strncpy 和 memcpy


热点排行