I try to create function that sum 2 string numbers, for example "888" and "9879" return "10767".
The problem is that when I access the return value from main I get garbage.
typedef char* verylong;
verylong add_verylong(verylong vl1, verylong vl2);
int main(){
    verylong result = add_verylong("888", "9879");
    printf("%s\n", result);
    return 0;
}
verylong add_verylong(verylong vl1, verylong vl2){
    int len_1 = strlen(vl1);
    int len_2 = strlen(vl2);
    int vl1_number= 0;
    int vl2_number = 0;
    int mul = 1;
    while(len_1 > 0){
        int x = vl1[len_1-1] - '0';
        x = x * mul;
        vl1_number = vl1_number + x;
        mul *= 10;
        len_1--;
    }
    mul = 1;
        while(len_2 > 0){
        int x = vl2[len_2-1] - '0';
        x = x * mul;
        vl2_number += x;
        mul = mul * 10;
        len_2--;
    }
    int number = vl1_number + vl2_number;
    int length = 0;
    int temp = number; 
    while(temp > 0){
        length += 1;
        temp /= 10;
    }
    length++;
    char string[length+1];
    verylong result = string;
    result[length--] = '\0';   
    while(number > 0){
        int x = number % 10;
        char c = x +'0';
        result[length] = c;
        length--;
        number /= 10;
    }
    return result;   
}
What could be the cause of this problem?
 
    