gpt4 book ai didi

c - C 方法编程中的段错误错误

转载 作者:行者123 更新时间:2023-11-30 17:22:34 25 4
gpt4 key购买 nike

下面是我编写的名为 inputReader 的方法的代码,它从文本文件读取输入并将其复制到结构体 wordz 中,然后从该结构体中检索 3 个最常见的单词,如下所示。

我试图将所有 3 个单词连接为一个指针,这样我就可以将其返回到 main 方法,但是每当我使用任何与 w1、w2、w3 相关的方法时,它都会复制到新的结构或数组或指针收到此错误“段错误(核心转储)”

知道为什么会发生这种情况或者我该如何解决它吗?

结构代码:

#define maxLetters 101

typedef struct {
char word[maxLetters];
int freq;
} WordArray; //struct type

代码:

char * w1; // most frequent word 
char * w2; // second most frequent word
char * w3; // third most frequent word

// finds w1
for(j = 0; j < uniqueWords; j++)
if(wordz[j].freq == freqz[uniqueWords-2]+1)//excludes whitespace frequency
w1 = wordz[j].word;

// finds w2
for(j = 0; j < uniqueWords; j++)
if(wordz[j].freq == freqz[uniqueWords-3]+1)//excludes whitespace frequency
w2 = wordz[j].word;

// finds w3
for(j = 0; j < uniqueWords; j++)
if(wordz[j].freq == freqz[uniqueWords-4]+1)//excludes whitespace frequency
w3 = wordz[j].word;

char *p;

// if i dont include strcat methods the method runs fine and outputs fine
strcat(p, w1); // once this operation is executed i get the error
strcat(p, " ");
strcat(p, w2);
strcat(p, " ");
strcat(p, w3);

最佳答案

您正在尝试连接到未初始化的指针。为“p”分配内存。

char *p = malloc(size)

关于c - C 方法编程中的段错误错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27991555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com