c - 执行时出错 : Segmentation fault

标签 c

我是 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/

相关文章:

c - 如何知道 SSH 连接是否失败?

c - fwprintf 什么时候返回负数?

c - C 中带有 malloc 和 realloc 的动态字符串数组不会退出循环

在 C 中连接两个字符串并将结果放入第三个字符串

c - 如何使用单词作为哈希中的键

c++ - pthread_cond_wait 从 pthread_cond_signal 丢失信号

c - 如何将 fork() 移植到 Vxwork

c - 将由三个结构组成的链表传递给函数

c - 指向具有替代答案的结构的指针

c - 释放从 C 函数返回的内存