memset(starg,0,sizeof(struct st_arg)); 报错

来源:3-4 ftp下载文件-搭建程序的框架

慕先生9503595

2022-05-05

// 结构体定义:存放从xml解析出来的程序运行参数。
struct st_arg
{
char host[51]; // 远程服务器的IP和端口。
int mode; // 传输模式,1-被动模式,2-主动模式,缺省采用被动模式。
char username[51]; // 远程服务器ftp的用户名。
char password[51]; // 远程服务器ftp的密码。
char remotepath[301]; // 远程服务器存放文件的目录。
char localpath[301]; // 本地文件存放的目录。
char matchname[301]; // 待下载文件匹配的规则:不匹配的文件不会被下载,本字段尽可能设置精确,不建议用*匹配全部的文件。
} starg;

// 解析xml,得到程序运行的参数。
// 解析xml参数,将取的值存放到结构体中。
memset(starg,0,sizeof(struct st_arg));
_xmltoarg(argv[2]);

编译fftpgetfiles.cpp: In function ‘int main(int, char**)’:
ftpgetfiles.cpp:52:39: error: cannot convert ‘st_arg’ to ‘void*’ for argument ‘1’ to ‘void* memset(void*, int, size_t)’
memset(starg,0,sizeof(struct st_arg));
^
make: *** [ftpgetfiles] Error 1tpgetfiles.cpp时报错如下:

写回答

2回答

长歌_吴从周

2022-05-05

大哥,memset()函数的第一个参数要填结构体的地址。

memset(&starg,0,sizeof(struct st_arg));

你这基础有点弱啊。

1
0

qq_慕用1199477

2022-05-05

memset函数第一个参数是要初始化的地址

0
0

C/C++气象数据中心实战,手把手教你做工业级项目

通过技术的实际应用,掌握等同2年经验的技术能力

968 学习 · 401 问题

查看课程