summaryrefslogtreecommitdiff
path: root/ft_lstnew.c
blob: 88194edd3078b76c25d3136c9742684cdf967b36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59

/*
Libft Copyright (C) 2026 yctct

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.
*/

/* "If you want to put data in a heap structure pointed to by a structure
pointer variable, you must use the structure pointer operator, ->."
CP:ABG, p. 262

t_list is an alias we defined with typedef so we don't need to prepend
it with struct or use struct t-list

'content' is both, the name of the variable/member defined in the struct and
the name of the parameter  passed in the following function.
E.g. in 'newnode-> content = content' the first one is the variable, defined
in the struct, the second one is the parameter.
*/

#include "libft.h"

t_list	*ft_lstnew(void *content)
{
	t_list	*newnode;

	newnode = malloc(sizeof(t_list));
	if (!newnode)
		return (NULL);
	newnode->content = content;
	newnode->next = NULL;
	return (newnode);
}

/*
#include <stdio.h>

int	main(void)
{
	t_list	*x;

	x = ft_lstnew("hello");
	printf("%s\n", (char*)(x-> content));
	printf("0.6%s\n", (char*)(x-> next));
	free(x);
	return (0);
}
*/