与往常一样,指针有问题。我正在尝试为 char 数组创建一个非常简单的“加密/解密”函数。是的,我知道我可以使用字符串,但我想提高我对指针的了解,并利用简单的字节来完成一项简单的任务。所以,我创建了一个这样的简单结构:
struct text {
char* value;
int size;
}
我创建了这个简单的函数:
text encrypt(text decrypted) {
char key = 'X';
for (int i=0; i<decrypted.size; i++) {
decrypted.value[i] = decrypted.value[i] ^ (key + i) % 255);
}
return decrypted;
}
在这一点上,我认为一个有经验的 C++ 程序员应该已经发现了这个问题。无论如何,我这样称呼这个函数:
...
text mytext;
mytext.value = new char[5];
mytext.value = "Hello";
mytext.size = 5;
mytext = encrypt(mytext);
...
像往常一样,我收到“分段错误(核心转储)”错误。这是 Linux,当然还有 g++。我又做了什么?谢谢!