Я пытаюсь скопировать argv в массив char, был через некоторые решения в Интернете, но в итоге получил ошибку сегментации. Ниже приведен код, который я использовал:Ошибка при копировании argv в массив char
void main (int argc,const char *argv[])
{
char *arr;
arr = (char *) malloc(strlen(argv[1])+1);
strcpy(arr,argv[1]);
}
Пожалуйста, помогите определить, что я делаю неправильно.
Какой параметр вы указать при запуске программы? Перед распределением, копированием вы должны проверить 'argc> 1'. –
Что такое 'argv [1]'? 'strlen (NULL)' приведет к UB и segfault. См. [This] (http://stackoverflow.com/q/5796103/2173917) –
И вы передаете хотя бы один аргумент программе? Расскажите, как вы вызываете программу и какие аргументы вы передаете ей. –