I am confused by the multi dimensions pointer of the module configure structure<div><br></div><div><div>if (cmd-&gt;type &amp; NGX_DIRECT_CONF) {</div><div>                conf = ((void **) cf-&gt;ctx)[ngx_modules[i]-&gt;index];</div>
<div><br></div><div>            } else if (cmd-&gt;type &amp; NGX_MAIN_CONF) {</div><div>                conf = &amp;(((void **) cf-&gt;ctx)[ngx_modules[i]-&gt;index]);</div><div><br></div><div>            } else if (cf-&gt;ctx) {</div>
<div>                confp = *(void **) ((char *) cf-&gt;ctx + cmd-&gt;conf);</div><div><br></div><div>                if (confp) {</div><div>                    conf = confp[ngx_modules[i]-&gt;ctx_index];</div><div>                }</div>
<div>            }</div><div><br></div><div>            rv = cmd-&gt;set(cf, cmd, conf);</div></div><div><br></div><div><br></div><div><br></div>