gpt4 book ai didi

使用指针发送数组的C项目

转载 作者:行者123 更新时间:2023-11-30 19:11:11 26 4
gpt4 key购买 nike

在此程序中,我必须创建一个指针系统,在仅读取较大输入的 80 个字符后,该系统将提供指针到指针到字符操作。然后将结果发送到一个函数,确定总输入中的单词数以及它们包含的平均字母数。我的问题是,我不能不知道如何创建指针系统而不生成 exc_bad_access 警告。此外,我找不到适合我需要的 malloc 和 free 组合。任何有关此问题的帮助将不胜感激。

inputPtr = (char*)malloc(81 * sizeof(char));

while (fgets(wordy, 81, stdin) != NULL) {
numChar = strlen(wordy);

inputPtr = wordy;
for (i = 0; i < groupRange; ++i) {
sentPtr[i] = &inputPtr;
}
if (numChar == 80) {
groupRange++;
}
free(inputPtr);
printwords(*sentPtr, numChar);
}

最佳答案

让我们仔细看看代码中的这三行:

inputPtr = (char*)malloc(81 * sizeof(char));
...
inputPtr = wordy;
...
free(inputPtr);

首先分配内存,并将指向该内存的指针分配给变量 inputPtr .

第二行重新分配 inputPtr所以它不再指向您分配的内存。您将丢失该内存并发生内存泄漏

最后一行,您尝试释放什么 inputPtr指向什么,我不知道它到底指向什么,但它可能不是您用 malloc 分配的内存。这会导致未定义的行为

具体如何解决你的问题我不确定,但一个好的开始是不动态分配内存,然后当然不调用 free .

关于使用指针发送数组的C项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40543671/

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