LINUX.ORG.RU

История изменений

Исправление theNamelessOne, (текущая версия) :

  • Под choices у тебя память неправильно выделяется. Ты создаёшь массив строк, на не массив символов, нужно как-то так:
    char **choices = calloc(choices_size, sizeof *choices);
    
    И зачем выделять именно 65535 элементов? Не проще выделить какое-то разумное количество, а в случае необходимости сделать realloc?

    Ну и в C не нужно кастовать void-указатели к другим типам указателей.

  • Без goto у тебя вполне можно обойтись.

Исходная версия theNamelessOne, :

продолжение

  • Под choices у тебя память неправильно выделяется. Ты создаёшь массив строк, на не массив символов, нужно как-то так:
    char **choices = calloc(choices_size, sizeof *choices);
    
    И зачем выделять именно 65535 элементов? Не проще выделить какое-то разумное количество, а в случае необходимости сделать realloc?

    Ну и в C не нужно кастовать void-указатели к другим типам указателей.