C语言strncpy函数问题?
发布网友
发布时间:2024-10-09 15:03
我来回答
共3个回答
热心网友
时间:2024-10-29 22:41
楼主主程序也有问题:str1和str2都指向const char *型即字符串常量,而后来调用了l_strncpy函数,企图对str1执行的常量区进行修改,Windows下程序运行起来会弹出错误窗口的。
看我改后的拷贝函数:
char * l_strncpy(char *s,char *t,int n)
{char *p=s; //保存s的起始位置以便返回
if(s==NULL ) return NULL; //s为空串,直接返回NULL
else if(t==NULL) return s; //t为空串,不做拷贝,返回s
//以下是:s和t都不为NULL的情况
while(*s && *t && n-->0) *s++= *t++;//逐字符拷贝,最多拷贝n个或到s、t之一结束为止
*s = '\0'; //在串尾加字符串结束符
return p;
}
热心网友
时间:2024-10-29 22:42
程序应该崩溃了
你的PTR指向个什么都没得。按你的写法,l_strncpy函数中至少要申请动态分配内存,然后请ptr指向该内存。
热心网友
时间:2024-10-29 22:42
没动态申请内存空间!我估计程序编译没什么问题一执行就段错误吧!