Я пытаюсь выполнить домашнее заданиеОшибка сегментации для приращения индекса массива?
Прежде чем я смогу использовать эту строку без каких-либо проблем и не подвергать сегментации, и я не знаю, почему она не работает сейчас после компиляции моего кода.
Это, как он вызывает из main()
:
rb = ascii(back_data[i], phr);
Это, как определить данные в main()
:
char phr[41];
int ascii(const char back[ ], char data[ ]){
int l = 0, n = 0, i = 0, co = 0;
char binary_holder[8], char_set;
binary_holder[0] = '\0';
l = strlen(back);
for (i = 0; i <= l; i++){
if (back[i] == '0' || back[i] == '1' && co < 8){
binary_holder[co] = back[i];
co++;
}
if(co == 8){
binary_holder[8] = '\0';
co = 0;
}
char_set = strtol(binary_holder, NULL, 2);
if (char_set > 31 && char_set != 127){
data[n++] = char_set;
}
}
Я забыл упомянуть, что проблема здесь, и я не могу еще не выяснено, почему
data[n++] = char_set;
Покажите нам данные 'data' –
Что такое' n' и каково его начальное значение? – xxbbcc
Почему вы вызываете одну и ту же функцию три раза? что такое данные [], где это определено? – wildplasser