#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char** argv){
int xAmount = atoi(argv[1]);
int yAmount = atoi(argv[2]);
double coef[argc - 3];
int i = 0;
for(i=0; i < argc - 3; i++){
coef[i] = atof(argv[i+3]);
}
for(i=0; i < argc-3; i++){
if(i == 0){
printf("y = %.2f",coef[i]);
}
else {
printf(" + %.2fx^%d",coef[i],i);
}
}
return 0;
}
Почему этот код C возвращает ошибку сегментации? Я просмотрел другие примеры и вопросы, которые были связаны с этой же проблемой, но я не могу найти аналогичную проблему в этом коде. Что мне не хватает?Почему этот код возвращает ошибку сегментации?
Вы используете отладчик? Если бы вы могли сделать обратную линию и сообщить нам, что она говорит, мы могли бы помочь вам лучше. – asdf
Вы пытаетесь получить доступ к некоторой памяти, которая не существует, которая вызывает ошибку сегмента. проверьте, какой номер строки это делает, и посмотрите, что выделено и что вы получаете. Поскольку вы передаете аргумент командной строки и нет обработки ошибок, это может вызвать ошибки, когда аргументы не передаются. –