gpt4 book ai didi

C++ 将二维数组传递给函数只加载一个字符

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

我正在开发的程序基本上是这样的:

 bool isUnique(char**,int,char[]);

int main() {
char** uniqueWords = new char *[MAXWORDSIZE];
uniqueWords[posofUnique] = new char[MAXWORDSIZE];
//assign value to uniqueWords[0]="value"
isUnique(uniqueWords,posofUnique,currentWord);
}

bool isUnique(char **uniqueArray, int amountofArrayFilled, char currentWord[]){
for (int count =0; count < amountArrayFilled; count++){
bool isEqual = strcmp(uniqueArray[count],currentWord);
}
return false;
}

然而,uniqueArray 仅在 strcmp 上加载一个字符。如何让它加载整个数组?

最佳答案

您的 uniqueWords 数组有 MAXWORDSIZE 元素,并且所有元素都包含分配后的垃圾指针值。

然后您将 uniqueWords[posofUnique] 指针设置为一些新分配的内存。因此,该单个条目现在或多或少具有一些有意义的值(value)。 uniqueWords 数组的其他条目仍然包含垃圾值。

然后调用 isUn​​ique,它会尝试检查从 uniqueWords[0]uniqueWords[posofUnique - 1] 的数组条目。但是这些条目仍然包含无意义的垃圾值!

因此,无论您通过这些未初始化的条目看到什么,都意味着绝对注意。它只是内存中某个随机地址的一些不可预测的垃圾。你说你在那里看到“只有一个字符”?恭喜。如果取得同样程度的成功,您可以在那里找到丢失的费马大定理证明。

关于C++ 将二维数组传递给函数只加载一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7342775/

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