- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
问题:
此代码示例搜索单词并计算单词数,以及具有 1000 行的较大 txt 文件的唯一单词数我收到错误,有什么想法吗?
错误:
week7_14(43430,0x1087085c0) malloc: *** error for object 0x696c617274737561: pointer being freed was not allocated
week7_14(43430,0x1087085c0) malloc: *** set a breakpoint in malloc_error_break to debug
代码示例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLEN 100
#define MAXWORDS 1000
int findWord(char *word[], char *temp, int index) {
for (int i=0; i<index; i++)
{
if (strcmp(word[i], temp) == 0) // found the word
return 1;
}
return 0; // cannot find word }
int main(int argc, char **argv) {
char filename[MAXLEN];
char *words[MAXWORDS] = {NULL};
char temp[MAXLEN];
int wordCount = 0;
int uniqueWordCount = 0;
int i = 0;
// read in the filename
printf("insert a file name: (eg. test.txt)\n");
scanf("%s", filename);
FILE *fp = fopen(filename, "r");
if (fp == NULL)
{
printf("Cannot open file %s\n", filename);
return 1;
}
while ((fscanf(fp, "%s", temp) == 1) && uniqueWordCount<MAXWORDS)
{
wordCount++; // update total number of words
// find word in words array
if (!findWord(words, temp, uniqueWordCount))
{
words[uniqueWordCount] = calloc(strlen(temp)+1,
sizeof(char));
if (words[uniqueWordCount] == NULL)
{
printf("calloc failed to allocate memory\n");
return 1;
}
strcpy(words[uniqueWordCount], temp);
uniqueWordCount++; // update number of unique words
}
}
fclose(fp);
while (i<uniqueWordCount)
{
free(words[uniqueWordCount]);
i++;
}
printf("Total number of words = %d\n", wordCount);
printf("Number of unique words = %d\n", uniqueWordCount);
return 0; }
有效的示例文本文件 (test.txt):
Any girl jumped over one boy.
Some car skipped to some boy.
One town drove over the town.
Any town ran under some dog.
Some girl drove to a town.
The boy walked under any town.
A town jumped over any car.
Any boy jumped from a car.
A dog ran over a boy.
A girl ran to some car.
A car ran under the girl.
The car ran on any town.
One dog walked under any dog.
A car jumped on some town.
A boy ran to a boy.
The dog drove over a boy.
A boy jumped over the car.
Some car drove on some girl.
One boy drove under some girl.
A girl walked over some dog.
输出:
insert a file name: (eg. test.txt)
test.txt
Total number of words = 120
Number of unique words = 30
最佳答案
您有几个问题需要解决,(1),您缺少右大括号:
int findWord(char *word[], char *temp, int index) {
for (int i=0; i<index; i++)
{
if (strcmp(word[i], temp) == 0) // found the word
return 1;
}
return 0; // cannot find word }
} /* missing closing brace */
(2) 你有一个错字并且试图释放 words[uniqueWordCount]
而不是 words[i]
,例如
for (i = 0; i<uniqueWordCount; i++) /* loop over each word in words */
free(words[i]); /* free words[i], not words[uniqueWordCount] */
(注意尝试释放 words[uniqueWordCount]
会产生错误,因为 uniqueWordCount
是最后分配的指针之后的一个)
最后,您应该使用 int main (void)
,因为既没有使用 int argc
也没有使用 char **argv
。
关于c - 这是什么意思,我应该如何为大文件解决这个问题? (malloc_error_break),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56105680/
我正在尝试调试我们的 iOS 应用程序中的偶尔崩溃。 我们得到“malloc_error_break”和通常的“对象在被释放后被修改”。崩溃发生在同一个 C 库中,但在不同的 malloc 位置。 回
重新加载tableView时,应用程序崩溃并且出现错误分配: error for object 0x7f8c7b99be80: pointer being freed was not allocate
我在我的应用程序中看到以下错误: (4446,0xa0bc94e0) malloc: * error for object 0x1d153000: pointer being freed was no
我正在开发一个从网络 API 获取数据的应用程序。大多数时候,它运行完美;但是,有时我会收到错误消息: malloc: *** error for object 0x7fc2b061de30: dou
void close_TCP_connection(TCP_Connection *tcp) { if (tcp) { printf(" CHIUSURA %s\n", tcp->se
我正在尝试了解更多有关 malloc 和 free 的信息,因此我创建了一个实现这些功能的 dylib,并且正在加载到一个通用系统二进制文件中。但是,它有错误,我正在尝试调试它们。 malloc.dy
问题: 此代码示例搜索单词并计算单词数,以及具有 1000 行的较大 txt 文件的唯一单词数我收到错误,有什么想法吗? 错误: week7_14(43430,0x1087085c0) malloc:
我一直在 Windows 上开发这个非常简单的 C 游戏,我使用命令 gcc matches.c -o ./matches 来编译它。我已将代码导入到我的 Mac 上,并使用 gcc 和 clang
我正在学习编写链表代码。我目前正在尝试删除链表的第一个元素。所以我写了下面的代码。它对第一个元素工作正常。但它显示第二个元素的错误。 void deleteFirst(Node* head){
我正在编写一个接受 2 个命令行参数的程序:a和 b分别。 只要a 17.5程序抛出以下错误: 释放对象的校验和不正确 - 对象可能在释放后被修改 我已将问题缩小到以下代码: for(int a=0
如何在 Xcode4 中设置 malloc_error_break?此外,我似乎收到此错误 malloc: *** error for object 0x4d80814: incorrect chec
在我的应用程序没有崩溃的情况下,我得到了很多这样的控制台输出: malloc: * error for object 0xc6a3970: pointer being freed was not al
为这个系上安全带。 很奇怪,我在网上找不到任何关于此类错误的信息,但这让我抓狂。希望你们能对这个问题有所了解。 我正在使用 MySQL++ 从表中获取一些基本数据。它可以很好地连接到数据库并且查询似乎
谁能帮我弄清楚我在哪里得到了这个错误。我知道这可能是双重删除或类似的东西。作为背景,这是一个霍夫曼树的实现,您可以在 wikipedia 上轻松实现。 . CharCountNode class im
我知道导致问题的代码行,但我不知道为什么。这是错误: malloc: *** error for object 0x6080001416b0: Invalid pointer dequeued fro
我在使用我的应用程序(在 ARC 下)时遇到此错误 (816,0x2ffe0000) malloc: *** error for object 0xb185010: pointer being fre
我收到以下错误: malloc: *** error for object 0xa68aca0: pointer being freed was not allocated *** set a bre
当我点击关闭窗口返回时,我的 Qt5 应用程序崩溃了: MyApp(28741,0x7fff7aa73000) malloc: *** error for object 0x7fc40bc8e300:
我的应用在模拟器上运行完美。但是当我在设备上运行它时,应用程序崩溃并显示错误: "malloc: * error for object 0x17415d0c0: Invalid pointer deq
当我尝试使用 MR_importValuesForKeysWithObject 插入数据时,我的应用程序崩溃了: malloc: error for object 0x174291c0e: Inval
我是一名优秀的程序员,十分优秀!