¿Dónde almacena el sistema operativo los argumentos de la línea de comandos?

Estoy trabajando en Linux. ¿En qué sección de la memoria se almacenan los argumentos de la línea de comando (stack o montón)?

Intenté ejecutar free(argv) y obtuve un error de segmentación. ¿Porqué es eso?

Intenté ejecutar free (argv) y obtuve un error de segmentación. ¿Porqué es eso?

Solo puedes free lo que malloc / calloc (y posiblemente realloc más adelante). Intentar free algo más invoca un comportamiento indefinido. Una (buena) forma en que UB se manifiesta es produciendo una falla de segmentación; Una forma (mala) es hacer que el progtwig parezca funcionar como se esperaba.

En cuanto a dónde están … lea la sección 5.1.2.2.1 de la Norma C99 – no está especificada .

Las cadenas apuntadas por la matriz argv serán modificables por el progtwig y conservarán sus últimos valores almacenados entre el inicio del progtwig y la terminación del progtwig.

Estoy trabajando en Linux. ¿En qué sección de la memoria se almacenan los argumentos de la línea de comando (stack o montón)?

Eso depende de la implementación; Revise la documentación de su comstackdor. Todo lo que se requiere es que argc y argv , así como las cadenas a las que apunta la matriz argv , sean modificables por el progtwig.

Intenté ejecutar free(argv) y obtuve un error de segmentación. ¿Porqué es eso?

No argv con malloc . No necesitas liberar el argumento de la línea de comando vectory.