View Full Version : CPP Problem :

Dec 14, 2009, 02:42 PM
hey, i have to write a recursive function that computes the factorial of a number given the following prototype:

void factorial (long argument, long *result)

here's what i have written, it compiles, but whenever i run it i get a segmentation fault. i'm pretty sure i'm just not using the pointer properly, any help would be greatly appreciated.

#include <stdio>

void factorial(long argument, long *result);

int main(){
long a;
long *result;

*result = 1;

printf("Enter a number: ");
scanf("%l", &a);

factorial(a, result);

return 0;

void factorial(long argument, long *result){
if (argument == 1)
printf("The factorial of %l is: %l", argument,*result);
*result = *result * argument;
factorial(argument-1, result);

i'm pretty new to C so if there are any other obvious flaws feel free to point them out.

Drunken F00l
Dec 14, 2009, 04:46 PM
long *result;

*result = 1;

Stopped reading right there. (Read: There's your obvious flaw.)

Dec 14, 2009, 07:02 PM
long result is loooooooooooooooooooooooooooooooooooooooooooong