Здравствуйте, 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++ им религия не позволяет? Хоть бы выделенный массив в умный указатель завернули
. Что ни строчка- эталонный говнокод как не надо делать.
Здравствуйте, 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. Может падать, может память теч, может попытаться всю память отожрать.