I’m a beginner in C language. After reading the initial chapters of Ritchie’s book, I wrote a program to generate random numbers and alphabets.
The program compiles fine with gcc. However on running it, it gives an error “Segmentation fault”, which is incomprehensible to my limited knowledge. I’d be glad to understand what I’ve written wrong.
#include <stdio.h>
#include <stdlib.h>
#include "conio.h"
#include <time.h>
long int genrandom(int,int);
void randAlph(void);
char letterize(int);
int main (void) {
// char full[9];
// char part_non[4];
srand(time(0));
int i;
for (i=0;i<50;++i) {
randAlph();
};
}
long int genrandom(int mino,int maxo) {
int val=mino+rand()/(RAND_MAX/(maxo-mino)+1);
return val;
}
void randAlph (){
int val;
char text;
val=genrandom(0,26);
// return val;
text=letterize(val);
printf("%s ,",text);
}
char letterize(int num) {
char letter='A'+num;
return letter;
}
printf("%s ,",text);is wrong – it says thattextis a nul-terminated array of chars. Useinstead to print your single char.