typedef struct s_stock_str
{
int size;
char *str;
char *copy;
} t_stock_str;
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strs_to_tab.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: jayang <[email protected]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/02/15 12:32:16 by jayang #+# #+# */
/* Updated: 2022/02/15 13:08:56 by jayang ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
#include "ft_stock_str.h"
int ft_strlen(char *str)
{
int len;
while (av[len])
len++;
return (len);
}
char *ft_strcpy(int size, char *str)
{
int idx;
char *sub;
sub = (char *)malloc(sizeof (char) * (size + 1));
if (!sub)
return (0);
idx = 0;
while (av[idx])
{
sub[idx] = av[idx];
idx++;
}
sub[idx] = '\\0';
return (sub);
}
struct s_stock_str *ft_strs_to_tab(int ac, char **av) // 구조체를 리턴하는 함수
{
int idx;
t_stock_str *stock_ptr; // t_stock_str 타입 포인터!! int *ptr처럼 생각하면 된다.
stock_ptr = (t_stock_str *)malloc(sizeof(t_stock_str) * (ac + 1);
// malloc 함수를 사용해서 필요한 공간만큼 heap 영역에 구조체 할당
if (!stock_ptr) // 구조체가 만들어지지 않을 경우 null 포인터 반환
return (0);
idx = 0;
while (idx < ac)
{
stock_ptr[idx].size = ft_strlen(av[idx]);
stock_ptr[idx].str = av[idx];
stock_ptr[idx].copy = ft_strcpy(stock_ptr[idx].size, av[idx]);
idx++;
}
stock_ptr[idx].str = 0;
return (stock_ptr);
}