LINUX.ORG.RU

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

Исправление 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 вставить, да.