Re[6]: Кто-нибудь работает или работал в Access Softek?
От: Тёмчик Австралия жж
Дата: 23.07.18 07:41
Оценка:
Здравствуйте, Lexsus, Вы писали:


L>Error Checking:

L>This function reads a string, preceded by a two-byte length, from a file into a C-style string in memory.
L>

L>char *ReadStringFromFile(FILE *fp)
L>{
L>    char    *str;
L>    int    length;

L>    fread(&length, 2, 1, fp);
L>    str = (char*)malloc(length + 1);
L>    fread(str, 1, length, fp);
L>    str[length] = 0;
L>    return str;
L>}

L>


Использовать классы C++ им религия не позволяет? Хоть бы выделенный массив в умный указатель завернули . Что ни строчка- эталонный говнокод как не надо делать.
Re[6]: Кто-нибудь работает или работал в Access Softek?
От: mike_rs Россия  
Дата: 25.07.18 13:45
Оценка:
Здравствуйте, Lexsus, Вы писали:

L>Вот ещё пример, не понятно что за ошибка:


L>Error Checking:

L>This function reads a string, preceded by a two-byte length, from a file into a C-style string in memory.
L>

L>char *ReadStringFromFile(FILE *fp)
L>{
L>    char    *str;
L>    int    length;

L>    fread(&length, 2, 1, fp);
L>    str = (char*)malloc(length + 1);
L>    fread(str, 1, length, fp);
L>    str[length] = 0;
L>    return str;
L>}

L>


а что непонятно? не проверяются ошибки чтения, не проверяется результат malloc. Может падать, может память теч, может попытаться всю память отожрать.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.