Functions to handle big numbers in C
It seems you're allergic to for loops for some reason; for example, in ft_strnew:

for (size_t i = 0; i &lt; size; i++)


There are examples elsewhere.

Don't predeclare your variables, e.g.

int     i;
int     j;


This hasn't been needed for 20 years. Declare them where they're used.

Replace this entire loop:

size_t  i;
i = 0;
while (i &lt; size)
{
    temp[i] = '\0';
    i++;
}
temp[i] = '\0';


With this:

memset(temp, '\0', size+1);


Otherwise, your entire approach to arbitrary-size integer math is a quite slow one. (Other libraries have solved this, but it's nice that you're trying to learn.) You can't be doing this character by character; rather you need to do it integer by integer. Do some googling about arbitrary-precision integer arithmetic on 64-bit architectures.

A comment on something you said:


  They work correctly but the larger the numbers the longer the time it takes.


No arbitrary-precision library can escape this. The execution time of even the best libraries will scale according to the size of the input when it exceeds the size of the machine word.