История изменений
Исправление post-factum, (текущая версия) :
Лучше, конечно, написать свою обёртку над free (один для всех типов) и malloc (для каждого типа). Типа так:
char *mm_alloc_char(int size)
{
if (size < 1)
{
fprintf(stderr, "mm_alloc_char: size is too small\n");
return NULL;
}
char *data = calloc(size, sizeof(char));
if (!data)
{
fprintf(stderr, "mm_alloc_char: unable to allocate %d\n", size);
return NULL;
}
return data;
}
void mm_free_char(char *data)
{
free(data);
data = NULL;
}
Так ты убережёшь себя от множества неприятностей, а дебажить будет легче.
И printf вставить, да.
Исходная версия post-factum, :
Лучше, конечно, написать свою обёртку над free (один для всех типов) и malloc (для каждого типа). Типа так:
char *mm_alloc_char(int size)
{
if (size < 1)
{
fprintf(stderr, "mm_alloc_char: size is too small\n");
return NULL;
}
char *data = calloc(size, sizeof(char));
if (!data)
{
fprintf(stderr, "mm_alloc_char: unable to allocate %d\n", size);
return NULL;
}
return data;
}
void mm_free_char(char *data)
{
free(data);
data = NULL;
}
Так ты убережёшь себя от множества неприятностей, а дебажить будет легче.
И printf вставить, да.