gpt4 book ai didi

C++ 字符数组参数在 x86 编译时包含奇怪的字符

转载 作者:行者123 更新时间:2023-11-28 02:16:17 25 4
gpt4 key购买 nike

我是 C++ 的新手,我必须实现 Polybius 密码函数。我将一个 char c 数组作为参数传递给我的函数。我使用了一个虚拟字符串“PROG”来测试代码,当我在 x64 中编译它时它工作得很好(由于某种原因,它被 Visual Studio 2015 设置为默认值)。但是,如果我将数组传递给 x86 构建中的函数,它会毫无理由地包含奇怪的字符:"PROG\x190§IæÏX1"

这是我的代码:

void createPolybiusMatrix(const char keyphrase[]) {
//Keyphrase contains "PROG" on x64 but "PROG\x190§ÎæÏX1" on x86!
//Do Stuff
}

int main() {
char passphrase[] = {'P','R','O','G'};
//Everythings fine here, passphrase contains "PROG" on both platforms.
createPolybiusMatrix(passphrase);
return 0;
}

有什么想法吗?我对 C++ 还是很陌生,这让我很困惑!?

最佳答案

C 字符串需要以 null 结尾。为了让您的程序正常工作,您需要使用:

char passphrase[] = {'P','R','O','G','\0'};

关于C++ 字符数组参数在 x86 编译时包含奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33945539/

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