Не работает программа в C
у меня не работает программа на C. Я не могу понять в чем проблема, компилируется без ошибок, но ввесто адекватной работы пишет "Segmentation fault". Подскажите пожалуйста, в чём проблема?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int chifrres(char* x, char* y, int z);
int chifrres(char* x, char* y, int z) {
return atoi(x) + atoi(y) + z;
};
char* add(char* x, char* y);
char* add(char* x, char* y) {
char* result;
char* y2;
char* x2;
x2[0] = '\0';
strcat(x2, "0");
strcat(x2, x);
y2[0] = '\0';
for (long i = 0; i < strlen(x) - strlen(y) + 1; i++) strcat(y2, "0");
strcat(y2, y);
int z = 0;
int n = strlen(x2);
for (long i = 1; i < n; i++) {
result[n-i] = chifrres(&x2[n-i], &y2[n-i], z);
};
if (result[0] == 0) result = result + 1;
return result;
};
char* multiply(char* x, int y);
char* multiply(char* x, int y) {
char* z = x;
for (int i = 0; i < y; i++) {
z = add(z, x);
};
return z;
};
void main() {
char* x = "37";
x = multiply(x, 3);
printf("%s", x);
}
(Суть программы в том, чтобы умножать числа без переполнения)
Источник: Stack Overflow на русском