我编写了一个函数来解析一个 url 并将其拆分为它的组件。为了存储 URL 的组成部分,我将一个指针(指向函数)传递给名为 urlinfo 的以下结构:
typedef struct urlstruct {
char** protocol;
char** address;
char** port;
char** page;
} urlstruct;
它包含双指针的原因是因为我不知道 URL 的每个组件将有多长。在函数内部,我计算出存储每个组件所需的大小,并尝试使用以下行将内存分配给 urlstruct 的组件:
*(urlinfo->protocol) = (char*)malloc(i * sizeof(char));
(i * sizeof(char))
所需的尺寸在哪里。此行导致访问冲突。有谁知道如何正确分配内存?
提前致谢 :)