Opened 5 years ago

Closed 5 years ago

#219 closed ожидается проверка (задача сдана)

WW #2

Reported by: romanov.daniil Owned by: Vasily Alferov
Component: WW_strings Version: 2.0
Keywords: Cc:

Description

my_strcpy и my_strcat падают по assert. Разобраться с этим делом, к сожалению, не успел.

Change History (3)

comment:1 Changed 5 years ago by Vasily Alferov

Type: ожидается проверкаожидаются исправления
  • Вообще, не компилируется.
    $ make
    mkdir obj
    gcc -Wall -Wextra -Werror -Iinclude -c src/test.c -o obj/test.o
    gcc -Wall -Wextra -Werror -Iinclude -c src/test_str.c -o obj/test_str.o
    In file included from src/test_str.c:3:
    src/test_str.c: In function ‘test_my_strcat’:
    src/test_str.c:16:28: error: comparison with string literal results in unspecified behavior [-Werror=address]
         assert(my_strcat(c, b) == "abcdefg");
                                ^~
    src/test_str.c:16:28: error: comparison with string literal results in unspecified behavior [-Werror=address]
         assert(my_strcat(c, b) == "abcdefg");
                                ^~
    cc1: all warnings being treated as errors
    make: *** [Makefile:15: obj/test_str.o] Error 1
    

Всё потому, что строки нужно сравнивать через strcmp. Если ты сравниваешь их на ==, ты сравниваешь указатели.

  • Ещё у тебя маловато зависимостей в Makefile, после изменения кода файлы не пересобираются.
  • Ну и strcat и strcpy должны возвращать старое значение s1, а не новое.

Других замечаний у меня нет ни по корректности, ни по стилю. Давай договоримся, что тут пока 0, а ты исправишь то, что не компилируется/не работает, и станет 10?

comment:2 Changed 5 years ago by romanov.daniil

Type: ожидаются исправленияожидается проверка
Version: 1.02.0

Все замечания учтены и исправлены.

comment:3 Changed 5 years ago by Vasily Alferov

Resolution: задача сдана
Status: assignedclosed

Зачтено.

Note: See TracTickets for help on using tickets.