我的程序中有很多数组都有这个问题,我不明白为什么。我想我错过了阵列理论的一些东西。
“某人”在我的数组末尾添加了某种字符字符,例如 ?^)(&%。例如,如果我有一个长度为 5 且带有“hello”的数组,那么它是满的,有时它会打印 hello?() /&%%. 如果它有 10 个元素并且我只使用 5 个元素,我可以理解它可能会发生,所以其他 5 个元素可能会得到一些随机值,但如果它已满,那么到底从哪里得到这些奇怪的值?
我通过在末尾手动添加字符'\0'来部分解决它。
例如,有时,当我尝试从另一个数组填充一个数组时,会出现这个问题(我从一个带有 fgets 的测试文件中读取一行,然后我必须提取单个单词):
...
for(x=0;fgets(c,500,fileb);x++) { // read old local file
int l=strlen(c);
i=0;
for (k=0;k<(l-34);k++) {
if(c[k+33]!='\n') {
userDatabaseLocalPath[k]=c[k+33];
}
}
谢谢