我是 C 语言的初学者。阅读 Ritchie 书的前几章后,我编写了一个程序来生成随机数和字母表。
该程序使用 gcc 编译良好。然而在运行它时,它给出了一个错误“Segmentation fault”,这是我有限的知识所无法理解的。我很乐意了解我写错了什么。
#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);
是错误的 - 它表示 text
是一个以 nul 结尾的字符数组。使用
printf("%c ,", text);
而不是打印你的单个字符。
关于c - 执行时出错 : Segmentation fault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13704127/