Я был ослеплен этой «ошибкой». Функция разделяет команду с ее параметрами из строки. Я использую strtok для этого. Я уверен, что это что-то глупое, но я не могу это видеть. Функция:Ошибка сегментации - Strtok - Linux C
int dataCommand(char command[], char *data[]){
char *ch;
printf("Split \"%s\"\n", command);
ch = strtok(command, "_");
int i = 0;
data[i] = ch;
printf("%s\n", data[i]);
while (ch != NULL) {
ch = strtok(NULL, "_");
data[++i] = ch;
printf("Valor ch Salida: %s\n", ch);
}
printf("dataCommand END");
return 0;
}
Вызов для этой функции:
char *data[MAX_PARAM]; //MAX_PARAM = 80
char command[] ="UMBR_Donostia_1_2";
dataCommand(command,data);
Результат на экране:
Split "UMBR_Donostia_1_2"
UMBR
Valor ch Salida: Donostia
Valor ch Salida: 1
Valor ch Salida: 2
Segmentation fault (core dumped)
Я следственную и большинство ошибок я обнаружил, используя символ * over strtok, поэтому они использовали литерал, но im использовали char []. Я не знаю, что еще может быть. Благодарю.
Это, вероятно, сбой в 'printf' потому что вы передаете это нулевой указатель. – melpomene
Вы использовали отладчик, чтобы помочь вам найти проблему? – kaylum
@melpomene исключая все printf, такой же бывает. –