C++面试题-字符串拷贝

2011-04-18 12:36:00 · 作者: · 浏览: 639

下面代码有什么问题
Void test3(char* str1) 

  char string[10]; 
  if(strlen(str1)<=10) 
  { 

    strcpy(string, str1); 
  } 
}

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