C语言中指针问题
大家好!
我想向大家请教一个关于C语言中的指针问题:
因为我在做单片机开发的时候,有用到uIP0.9这个网络协议,并且用了它的一个SMTP客户端程序,它在发送邮件使用的是这样的函数定义:
unsigned char smtp_send(char *username, char *password, char *to, char *from, char *subject, char *msg, u16_t msglen);
参数说明:
username:登入smtp服务器的用户名
password:登入smtp服务器密码
to:收件人邮箱地址
from:发件人邮箱地址
subject:邮件主题
msg:邮件正文
msglen:邮件正文长度
主要问题是后面的msg参数(邮件正文),我如果直接把这个参数赋值,如:msg="email content",发送邮件是正常的,我如果用数组正文就是乱码,有可能是我的写的代码问题:
unsigned char i;
char temp[5]={'a','b','c','e','f'};
char *msg;
for(i=0;i<sizeof(temp);i++){
*(msg++)=temp[i];
}
*msg='\0';
然后再调用smtp_send方法
不知这样写有没有问题,然后指针移动后,怎样将指针指向初始位置,此处就是将msg指针指向它的第一个元素?