我正在做cs50拼写问题,看起来一切都正常,除了当我运行Valgrind时,它显示有分段错误,当我尝试运行代码时,同样的错误也发生了。这是一个来自cs50的练习,我有一个函数,它接受一个“字典”文件,这个文件是由一个循环逐个读取的,并存储在一个哈希表中,为了读取每个单词,我使用了一个while循环,使用fscanf从字典的指针中获取一个字符串,到一个称为单词的字符串(它比字典上的任何单词都大),循环一直运行,直到到达EOF: //Puts dictionary words into hashtable
bool load(const char *dictionary)
{
// T
我正在做一个学习C语言链表的项目,虽然我的代码可以编译,但我在尝试运行代码时遇到了分段错误。我知道分段错误发生在哪里,但我正在尝试找出它的问题所在。下面是我的代码:
//
// It reads the list from the file_name indicated. If the list already has entries,
// it will clear the entries.
//
int llist_read(LinkedList * list, char * file_name) {
//Still Need to complete this!!!
C我想使用fscanf读入以下格式的文件。
//text file
push i
push o
pop
push i
pop
push a
一个单词,然后是一个由空格分隔的字符。然后将该单词分配给一个指针或var,并为char分配相同的值。但是我一直收到一个分段错误。
FILE * fp("text.txt", "r");
char * word = malloc( 21 * sizeof *word );
char data;
int c, size , i, prev;
while(fscanf(fp, "%s %c[^\n]"
因此,我开始在CS50的过程中学习C 2天。在第二周的问题集,有一个挑战,编码贪婪的算法,这基本上是回报客户,他们的变化,以最低数量的硬币。这是我在CS50沙箱中写的解决方案。
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int main(void)
{
//Assign value
int q = 0; int d = 0; int n = 0; int p =0;
int left;
int count = 0;
float change;
我正在为一个C字词搜索程序编写一些代码,在编译其中一个文件时,我得到了fscanf函数的分段错误,但我不知道错误在哪里。我已经搜索了答案,并且我了解到,对于整数变量,我必须初始化它们的值(而且我已经完成了),并且我必须用'&‘(也是这样)引用fscanf()中的类型。
下面是代码(在main()函数中):
int i;
int nl = 0;
int nc = 0;
int a, b, d;
char mat[1000][1000];//character matrix for wordsearch letters
int x[1000], y[1000];
int l, c,
我正在尝试编写一个包装器,以便从文件中获取一些预定义的标准输入。如果开头有“#”,程序应该跳过一行,否则在一个名为factorList的数组中存储除前2个元素之外的所有元素。我使用malloc动态地为这个指针分配内存。然后,我试图在我声明它的while循环之外访问这个数组,但是它会导致一个错误。
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
int main(int argc, char * argv[])
{
int degree = 100;
int tem
所以我面临着一个奇怪的问题。当声明一个随后不使用的int时,我得到了一个分段错误。当我删除声明时,代码运行得很好。这怎么可能呢?
FILE* ptr = fopen("prueba.txt", "r");
int x;
char* a;
int y = 0; //this cause the seg fault.
do{
while (fscanf(ptr, "%i", &x)!=-1){
fscanf(ptr, "%s", a);
printf("%i %s