char string[7];
char* str1 = "0123456789";
printf("%s",strcpy( string, str1 ));
为什么数组string的空间小于 字符串“0123456789”,但是依然输出0123456789;
还有strcpy函数是以什么方式进行赋值的?
strcpy函数赋值时遇到问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答
- 「已注销」 2014-11-23 09:43关注
(1)在运行该代码时,提示Debug Error:Run-Time Check Failure #2 - Stack around the variable 'string' was corrupted.即栈区损坏。
(2)
char *strcpy(
char *strDestination, //目标字符串。
const char *strSource //null 终止的源字符串。
);strcpy( )是char *类型,接受两个字符串指针参数, 返回的是第一个参数的值,即一个字符的地址。strcpy( )复制 strSource,包括终止 null 字符,按 strDestination指定的位置。 如果源页和目标字符串重叠,strcpy 行为不确定。由于 strcpy 不检查在 strDestination中是否有足够的空间,所以可能会产生缓冲区溢出的问题。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 ads仿真结果在圆图上是怎么读数的
- ¥20 Cotex M3的调试和程序执行方式是什么样的?
- ¥20 java项目连接sqlserver时报ssl相关错误
- ¥15 一道python难题3
- ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
- ¥15 牛顿斯科特系数表表示
- ¥15 arduino 步进电机
- ¥20 程序进入HardFault_Handler
- ¥15 oracle集群安装出bug
- ¥15 关于#python#的问题:自动化测试