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))
必要なサイズはどこですか。この行により、アクセス違反が発生します。メモリを正しく割り当てる方法を知っている人はいますか?
前もって感謝します :)