大家帮我看看以下代码。。。。。为什么我定义char *s = NULL被函数调用时会有问题?然而如果我在strncpy函数实现中使用内存分配的话,对于char *s也无法正常返回结果。。。请问这究竟是为什么。。。。。。。谢谢。。。。 #include <iostream>
using namespace std;
int usr_strlen(const char *s); char *usr_strncpy(char *des,const char *src,int size);
int main() { char s[5]; /* Error: char *s = NULL */ cout << usr_strncpy(s,"Hello,World!",5) << endl;
return 0; }
int usr_strlen(const char *s) { int result = 0; while(*s++ != '\0') result++;
return result; }
char *usr_strncpy(char *des,const char *src,int size) { int i; char *p = des; if(src == NULL) { return NULL; des = NULL; }
for(i = 0; i < (usr_strlen(src) < size ? usr_strlen(src) : size); i++) { *des = *src; des++; src++; } *des = '\0'; return p; }