non-pointer type `char' from NULL的问题

eugenekim 2006-04-20 08:50:22
#include <iostream>
using namespace std;

char *strncat(char *destination, const char *source, int n);
int main()
{
char *str1=new char[256];
char *str2=new char[256];
cout << "Input string1 and Press Enter: " << endl;
cin.getline(str1,256,'\n');
cout << "Input string2 and Press Enter: " << endl;
cin.getline(str2,256,'\n');
strncat(str1,str2,2);
cout << "The result is:" << endl << str1;
return 0;
}

char *strncat(char *destination, const char *source, int n)
{
char *original=destination;
int i=0;
while (*destination)
destination++;
while ((i++<n) && (*destination++=*source++))
;
if (i>n)
*destination=NULL;
return original;
}

g++ strncat.cpp -g -o strncat
出现警告:
strncat.cpp: In function `char* strncat(char*, const char*, int)':
strncat.cpp:27: warning: assignment to non-pointer type `char' from NULL
strncat.cpp:27: warning: argument to non-pointer type `char' from NULL

第27行是:*destination=NULL;
这个警告是什么意思啊?
...全文
212 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
eugenekim 2006-04-21
改为*destination='\0';就可以了
  • 打赏
  • 举报
回复
healer_kx 2006-04-21
*destination='\0'
  • 打赏
  • 举报
回复
eugenekim 2006-04-20
我后来将27行的*destination=NULL; 改为destination=NULL; 编译的时候没有出错,但是结果出错了。
比如我输入第一个字符串是123456,第二个字符串是123,正确的结果是取第二个字符串前2位加到第一个那里成为12345612。令人奇怪的是这时候结果是12345612iles=C:\Program Files\Common Files

为什么啊?
  • 打赏
  • 举报
回复
sharpdew 2006-04-20
ft
  • 打赏
  • 举报
回复
jixingzhong 2006-04-20
*destination 不是指针了,是一个 char
destination 才是 char * ,才是指针...
  • 打赏
  • 举报
回复
jixingzhong 2006-04-20
*destination=NULL
==》
destination=NULL
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ 语言
加入

6.0w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2006-04-20 08:50
社区公告
暂无公告