c - 续:从文件中索引单词的程序的分段错误
问题描述
我遇到了一个应该索引从文件中读取的单词的程序的分段错误。我更改了我尝试创建动态数组的代码的第一部分,意识到数组不能是动态的。以前,我曾经遇到分段错误,但现在程序编译但甚至无法正常运行。我非常感谢一些反馈。我上一篇文章的链接是 从文件中索引单词的程序的分段错误
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char *argv[])
{
//Check if the usage is correct
if (argc != 2)
{
printf("Usage: ./test15 text\n");
return 1;
}
//Main program
char *file = argv[1];
FILE *ptr = fopen(file, "r");
char ch;
int i = 0;
int k = 0;
int j = 0;
char *text = malloc(sizeof(char));
while ((ch = fgetc(ptr)) != EOF)
{
text[i] = ch;
if (ch == ' ')
{
k++;
}
i++;
}
char *word[k];
i = 0;
int l = 0;
while ((ch = fgetc(ptr)) != EOF)
{
text[i] = ch;
if (ch == ' ')
{
for (int m = j; m < i; m++)
{
int d = i - j;
strncat(word[l], &text[m], d);
}
j = i + 1;
l++;
}
i++;
printf("%s\n", word[l]);
}
return 0;
}
解决方案
推荐阅读
- java - 使用java在字符串中搜索连字符
- delphi - 如何确定 TSysCharSet(AnsiChar 集)是否未分配?
- python - 比较两个文本文件并输出差异+找到记录的文件的名称
- linux - 使用 'sed' 删除行首和行尾的空格
- c# - 通过 Dapper 在 OracleConnection 对象上设置 ClientID
- android - 哪些应用使用 Intent.EXTRA_HTML_TEXT?
- javascript - Node.js puppeteer - 在循环中使用数组中的值来循环浏览页面
- node.js - 尽管提示没有价值,但谷歌身份验证总是要求授权
- json - Spark - 在 json 数组字段中删除重复项
- php - Laravel:如何在控制器的几种方法中重用代码片段