Я пишу программу на C, которая требует от меня принимать аргументы командной строки и использовать их в программе.Я не понимаю, почему в коде строковые аргументы присваиваются переменной char*
для дальнейшего использования в программе, когда память не выделяется перед этим.Разве не обязательно выделять достаточно памяти, чтобы указатель мог указывать перед использованием?
//c program
int main(int argc, char *argv[]){
//lets say there is only one argument after the program name
// so that argc = 2 and argv = {filename, string1}
//assigning the string to a char *
//no memory allocated before assignment
char *x = argv[1];
// rest of the program ...
}