gpt4 book ai didi

c - 如何在没有段错误的情况下增加 C 中的字符指针?

转载 作者:行者123 更新时间:2023-11-30 15:08:10 25 4
gpt4 key购买 nike

所以我在 C 中定义了以下函数:

#include <stdio.h>

void encrypt(int size, unsigned char *buffer){
buffer[i] = buffer[i] + 1;
printf("%c",buffer[i]);
}

int main(){
encrypt(5,"hello");
}

我期待它返回 ifmmp ,但我得到了错误

"Segmentation fault (core dumped)".

如果我去掉这条线
buffer[i] = buffer[i] + 1

printf("%c",buffer[i]+1)
然后我得到了想要的结果。但我想实际更改存储在该地址中的值。我怎样才能做到这一点?

最佳答案

您的代码中有很多问题:

  • i 未初始化
  • "hello" 会转换为 int,因此请避免以这种方式发送。请参阅下面的代码
  • 您已发送参数 size 但尚未使用它。

  • 最后,使用循环递增数组中的每个值 char *buffer

  • main() 末尾返回一个值,正如您提到的返回类型为 int

所以,这是代码

#include <stdio.h>

void encrypt(int size, char *buffer){
int i;
for(i=0;i<size;i++)
buffer[i] =(buffer[i]+1);
printf("%s",buffer);
}

int main(){
char s[]="hello";// total 5 charcters + '\0' character
encrypt(5,s);
return 0;
}

生成的输出是所需的。

关于c - 如何在没有段错误的情况下增加 C 中的字符指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37552323/

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