自己写一个库函数strcpy(转)
来源:互联网 发布:c 后台调用前台js 编辑:程序博客网 时间:2024/05/29 13:16
库函数strcpy的工作方式,如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案:
2分
void strcpy( char *strDest, char *strSrc )
{
while( (*strDest++ = * strSrc++) != ‘/0’ );
}
4分
void strcpy( char *strDest, const char *strSrc )
//将源字符串加const,表明其为输入参数,加2分
{
while( (*strDest++ = * strSrc++) != ‘/0’ );
}
7分
void strcpy(char *strDest, const char *strSrc)
{
//对源地址和目的地址加非0断言,加3分
assert( (strDest != NULL) && (strSrc != NULL) );
while( (*strDest++ = * strSrc++) != ‘/0’ );
}
10分
//为了实现链式操作,将目的地址返回,加3分!
char * strcpy( char *strDest, const char *strSrc )
{
assert( (strDest != NULL) && (strSrc != NULL) );
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘/0’ );
return address;
}
***********************************************************
char *GetMemory( void )
{
char p[] = "hello world"; //错误:如果使用指针是对的
return p;
}
void Test( void )
{
char *str = NULL;
str = GetMemory();
printf( str );
}
**************************************************************
free(str)后应置str为空,导致可能变成一个“野”指针,应加上:
str = NULL;
用到malloc之后记得释放
***********************************************************
swap( int* p1,int* p2 )
{
int *p;
*p = *p1;
*p1 = *p2;
*p2 = *p;
}
在swap函数中,p是一个“野”指针,有可能指向系统区,导致程序运行的崩溃。在VC++中DEBUG运行时提示错误“Access Violation”。该程序应该改为:
swap( int* p1,int* p2 )
{
int p;
p = *p1;
*p1 = *p2;
*p2 = p;
}
- 自己写一个库函数strcpy(转)
- C语言面试题,自己写库函数(memcpy、strcpy、strcmp....)
- 自己写的一个strcpy函数
- 自己模拟strcpy库函数写的功能函数my_strcpy实现strcpy的功能,完整代码
- 自己动手写C语言库函数(5)strcpy
- 通讯录(自己写strcpy,strcmp)
- 自己写strcpy
- 自己写一个strcpy(char*dest,char*src),如何在函数内部实现防御性溢出?
- 一步一步写算法(自己实现strcpy函数)
- 不调用库函数,实现自己的strcpy(使用时的注意事项)
- c++ 之自己写库函数 (静态库)
- 不用库函数,自己实现strcpy和memcpy函数
- 不用库函数,自己实现strcpy和memcpy函数
- 自己编写函数,实现库函数里的strcpy函数
- [转]写一个完美的strcpy / strlen 函数
- 转]写一个完美的strcpy / strlen 函数
- 自己写的 字符串函数strcpy
- 写程序实现自己的strcpy() 函数
- 把数字格式化成带有分号的字符串
- multipath多路径设备input/output error读写错误
- linux sort 命令详解
- MingW上编译WinSocket程序undefined reference to `WSAStartup@8'报错的解决办法
- OCP-1Z0-053-V12.02-568题
- 自己写一个库函数strcpy(转)
- debug_objects_early_init
- if语句应用输入月份输出对应季节举例
- Hibernate与struts2合作开发的必然问题:java.lang.NoSuchMethodError: antlr.collections.AST.getLine(),请删多余jar包
- hdu1874我的第一篇最短路
- android 三星左侧快捷菜单实现原理
- hibernate缓存机制详细分析
- TCP socket异常关闭总结
- CSS :active 伪类