这就是我定义struct的方式。
struct urlFormat
{
int port;
char *host;
char *path;
int cat;
char *status;
};
这是我初始化strcut并为指针分配空间的方法。
struct urlFormat *res;
res = malloc(sizeof(struct urlFormat));
当我使用memcpy()函数时,它报告了分段错误。
char *ptr1 = (char *)url;
int len = strlen(ptr1);
memcpy(res->host, ptr1, len);
我不知道如何解决它。
答案 0 :(得分:0)
res->host
只是一个指针(它还没有指向任何东西)。
在res->host
指向某个有效内存之前,您无法memcpy
。
你可以malloc
一些内存res->host = malloc(len + 1);
(0终止符+ 1,sizeof(char)
总是1,所以省略它)或者在这种情况下只使用res->host = strdup(ptr1);
< / p>