连接两个字符串错误

标签 c concatenation

当我尝试连接两个字符串时出现段错误,如下面的代码所示:

已编辑

//global variables
char *result="hi";
char *temp;

size_t write_data(char *ptr, size_t size, size_t nmeb, void *stream)
{
  temp=(char *)ptr;

  while(*result)++result;

  while(*result++ = *temp++);

  return fwrite(ptr,size,nmeb,stream);
}

我在这里做错了什么?

谢谢

最佳答案

您正在将值存储到 result 指向的地址中,而没有初始化 result 以指向可用于存储结果的足够内存。通过将结果初始化为“Hi”,您已经为其分配了三个字节。这不足以保存您试图在末尾附加的额外数据。

关于连接两个字符串错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7975411/

相关文章:

c - 如何写入空文件中的特定偏移量

powershell - 如何在win10命令提示符下使用ffmpeg连接来自不同子目录的视频文件?

java - 带有串联提示的 Asterisk getoption

C 检查用户输入错误

c - 在客户端-服务器架构中动态更新文件夹

python - 使用 scipy 稀疏矩阵和 numpy 数组训练 `sklearn` ML 模型

C# 二维数组连接

.net - Path.Combine 如何与两个以上的参数一起使用?

php - PHP 的 password_verify() 对极长密码(DoS 攻击)是否安全?

c++ - 使用#pragma 优化的代码的可移植性如何?