¿Cómo se pasa el argumento envp a la llamada al sistema execve?

¿Cómo se pasa el argumento envp a la llamada al sistema execve?

Supongamos que llamo

int execve(const char *filename, char *const argv[], char *const envp[])

¿Dónde mallocbusqué memoria envp, entonces, cómo filenameaccede el programa al contenido de esa matriz cuando execveborra toda la memoria anterior (incluido el montón)?

información relacionada