Используйте некоторые ограничительные флаги компилятора, например, --pedantic --std=c11 -Wall -Wextra
для gcc.Это поможет вам найти некоторые ошибки, такие как отсутствие включает вас самих.
Включить stdlib.h
для вашего вызова malloc()
.
argv[0]
не ваш первый аргумент командной строки, этоимя вашего двоичного файлаТаким образом, вы должны адаптировать циклы.
Чтобы упростить случай, когда не было задано ни одного аргумента, включите assert.h
и проверьте количество аргументов в начале вашего main с помощью assert(argc > 1);
.
Ваше распределение row
не является правильным, но зависит от платформы, поскольку элементы row
имеют тип int *
, а не int
.Вместо этого выделите row = malloc((argc - 1) * sizeof(int *));
.