C - 取消引用空指针

2024-01-03

我正在尝试创建自己的交换函数,但遇到了麻烦。
为什么我收到“取消引用空指针”?

void    ft_swap(void *a, void *b, size_t nbytes)
{
    unsigned char   *cur_a;
    unsigned char   *cur_b;
    size_t          i;

    i = 0;
    while (i < nbytes)
    {
        cur_a = (unsigned char *)*a + i; // here
        cur_b = (unsigned char *)*b + i; // here

        *a = cur_b;
        *b = cur_a;

        i++;
    }
}

不允许取消引用 void 指针。您需要将其转换为另一种指针类型:

cur_a = (unsigned char *)a;

同样,您不能将任何内容分配给*a。正确的代码是:

void ft_swap(void *a, void *b, size_t nbytes) {
    unsigned char  *cur_a = (unsigned char *) a;
    unsigned char  *cur_b = (unsigned char *) b;

    for (size_t i = 0; i < nbytes; ++i) {
        unsigned char tmp = cur_a[i];
        cur_a[i] = cur_b[i];
        cur_b[i] = tmp;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C - 取消引用空指针 的相关文章

  • 多个源的 makefile

    在学习 make 文件时 我试图为多个源目录编写一个 make 文件 似乎我在某个地方错了 这是我的代码结构 directory common fun2 c inc fun h src fun1 c main c 这是我的生成文件 CC c
  • CMake 找不到请求的 Boost 库

    既然我已经浏览了其他人的解决方案几个小时 但找不到适合我的问题的正确答案 我想将我的具体问题带给您 我正在尝试使用 CMake 构建 vsomeip 为此 我之前构建了 boost 1 55 但是 我在 CMake 中收到以下错误 The
  • 您可以从基本 Win32 控制台模板应用程序中的 C#/Winrt 组件调用(不是 WinForm/abstractions/wrappers 或使用 C++/Winrt 模板)吗?)

    我有一个现有的程序 win32 x86 控制台应用程序 需要调用托管代码 来自 Net 的 C dll The dll不暴露给 COM 但可以从 C WinRT 组件调用并由 C WinRT 控制台模板应用引用 BUT即使安装了 C Win
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • C++ 长 switch 语句还是用地图查找?

    在我的 C 应用程序中 我有一些值充当代表其他值的代码 为了翻译代码 我一直在争论使用 switch 语句还是 stl 映射 开关看起来像这样 int code int value switch code case 1 value 10 b
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • 在 C# 中调用 C++ 库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有很多用 C 编写的库 我想从 C 调用这些库 但是 我遇到了很多问题 我想知道是否有书籍或指南告诉我如何做到这一点 Dll导入 htt
  • 运行需要 MySql.Data 的内置 .NET 应用程序

    我在运行我编写的内置 NET 应用程序时遇到问题 我的应用程序使用最新的 MySql 连接器 该连接器安装在我的系统上 当我尝试将其添加为引用时 该连接器显示为 NET 4 Framwork 组件 当我在环境中以调试模式运行应用程序时 一切
  • 是否存在指向不同类型的指针具有不同大小的平台?

    C 标准允许指向不同类型的指针具有不同的大小 例如sizeof char sizeof int 是允许的 但是 它确实要求如果将指针转换为void 然后转换回其原始类型 它必须与其原始值进行比较 因此 从逻辑上来说 sizeof void
  • 将表(行)与 OpenXML SDK 2.5 保持在一起

    我想在 Word 文档中生成多个表 每行 2 行 但我想将这两行保留在一起 如果可能的话 new KeepNext 第一行不起作用 new KeepNext 第一行的最后一段不起作用 new CantSplit 放在桌子上不起作用 在所有情
  • 将接口转换为其具体实现对象,反之亦然?

    在 C 中 当我有一个接口和几个具体实现时 我可以将接口强制转换为具体类型 还是将具体类型强制转换为接口 这种情况下的规则是什么 Java 和 C 中都允许这两个方向 向下转型需要显式转型 如果对象类型不正确 可能会抛出异常 然而 向上转换
  • 如何从 Rx Subscribe 回调异步函数?

    我想回调 Rx 订阅中的异步函数 例如 像那样 public class Consumer private readonly Service service new Service public ReplaySubject
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • 如何停止无限循环?

    我正在编写一个程序 该程序将计算三角形或正方形的面积 然后提示用户是否希望计算另一个 我的代码已经运行到可以计算任一形状的面积的程度 但随后不再继续执行代码的其余部分 例如 如果选择了正方形 则计算面积 然后返回到正方形边长的提示 我假设这
  • 在 C#.NET 中安全删除文件

    在我正在做的一个项目中 我想为用户提供 安全 删除文件的选项 例如 用随机位或 0 覆盖它 在 C NET 中是否有一种简单的方法可以做到这一点 效果如何 你可以调用系统内部删除 http technet microsoft com en
  • 如何使用placement new重新初始化该字段?

    我的课程包含字段 private OrderUpdate curOrderUpdate 我一遍又一遍地使用它 经常需要重新初始化 for int i 0 i lt entries size i auto entry entries i ne
  • 结构化绑定的用例有哪些?

    C 17 标准引入了新的结构化绑定 http en cppreference com w cpp language structured binding功能 最初是proposed http www open std org jtc1 sc

随机推荐

  • 关于多线程下载的缺点

    我有一个关于多线程下载的问题 正如您所知 使用多个线程下载可以提高应用程序的性能 但是有一些措施需要尊重 例如线程数 可用带宽等等 但我不太明白 为什么例如 使用多个线程可能会降低应用程序的性能 或者服务器的带宽 质量如何影响多线程应用程序
  • 如何将docker镜像打包到一个文件中

    我有一个名为 ubuntu dev update 15 的 5GB docker 镜像 它是我在本地 Ubuntu 14 开发机器上开发的 在该图像中 我拥有完成开发工作所需的一切 现在我需要能够将此映像发送到不同的 Linux 主机 这样
  • 有没有办法检查计算机的 AD 组成员身份?

    我正在尝试通过 Powershell 检查计算机组成员身份 我希望能够指定某个计算机名称并通过 Powershell 脚本查找该计算机所在的组 我计划在计算机上运行脚本 获取主机名 然后打印出该计算机所在的 AD 组 有没有一种简单的方法可
  • 类型 {1} 上不存在所需的属性 {0}。添加FK时实体框架(模型优先)

    我正在尝试将外键添加到数据库 然后更新模型 更新模型后 应用程序出现以下错误 System Data Entity Core MetadataException was unhandled HResult 2146232007 Messag
  • Linux - Bash - 获取 $releasever 和 $basearch 值?

    我正在编写一个 bash 脚本来使用 reposync 从远程存储库提取包 这样我就可以将我的节点指向本地提取 因此 我试图使本地存储库配置尽可能与 usptream 存储库配置相似 如下所示 upstream baseurl http m
  • 如何将我的图例组织成子组?

    我的条形图的图例当前在一个长列表中列出了图中的所有项目 我希望每列都有图例组 列数是动态的 因此图例必须能够相应调整 library phyloseq packageVersion phyloseq library ggplot2 libr
  • 如何在 Perl 中将简单数组编码为 JSON?

    我见过的所有在 Perl 中将对象编码为 JSON 字符串的示例都涉及哈希 如何将简单数组编码为 JSON 字符串 use strict use warnings use JSON my arr this is my array my js
  • 从 NSInspiration 获取参数值

    有人可以解释一下如何将值传递给使用时被拦截的不存在的方法 void forwardInvocation NSInvocation anInvocation NSMethodSignature methodSignatureForSelect
  • getLocationOnScreen/getLocationInWindow 中的坐标不正确

    致电getLocationOnScreen or getLocationInWindow 都给我一个top Y坐标大约 30px 状态 通知栏的高度 太低了 这left X坐标完全正确 正如我上面所暗示的 我相信差异是因为状态 通知栏 我可
  • 有没有一种简单的方法将 Swing 接口与数据源绑定

    我正在使用 WindowBuider 对 Swing 应用程序的管理部分进行编程 它基本上是充满了我需要对其进行 CRUD 操作的项目的表格 数据来自MySQL数据库 我可以手动完成 但是需要很长时间 有没有一种简单的方法可以做到这一点 使
  • 有人可以解释 Javascript 中 .indexOf() 的逻辑吗?

    function vowelsAndConsonants s var vowels a e i o u for let i 0 i
  • win32gui 获取当前活动应用程序名称

    我刚刚学习Python 对它来说相对论还很陌生 我创建了以下脚本 它将获取当前活动窗口标题并将其打印到窗口 import win32gui windowTile while True newWindowTile win32gui GetWi
  • Rails - 查看日志文件中生成的 SQL 查询

    有没有一种方法可以像在开发中一样在生产环境中查看 Rails 生成的所有查询 是的你可以 如果您进入 config environments production rb 文件 会有这样的部分 See everything in the lo
  • CSRF 令牌在登录期间过期

    我正在开发 Spring Web 应用程序 我需要避免登录页面上的 csrf 令牌过期问题 因为如果用户等待太长时间并尝试登录 解决 csrf 问题的唯一方法是重新加载页面并尝试再次登录 但这对用户不友好 我想避免这种情况 第一个问题 一般
  • 有什么方法可以以编程方式选择 TextView 中的文本吗?

    我有一个TextView我希望允许用户搜索特定的字符串 如果找到该字符串 它应该突出显示 使用背景跨度太慢而且很尴尬 所以我想弄清楚是否可以让它选择字符串 我知道与EditText这可以使用setSelection 但我不希望用户能够编辑文
  • 富文本框到字符串

    我有一个绑定到菜单项的富文本框 以允许粗体 斜体和下划线以及剪切 复制和粘贴 但是如何获取 RichTextBox 内容并将其从代码隐藏转换为字符串哪个将带有粗体 斜体等
  • 使用 Alamofire 处理超时

    是否可以为 Alamofire 请求添加超时处理程序 在我的项目中 我这样使用 Alamofire init let configuration NSURLSessionConfiguration defaultSessionConfigu
  • 我需要将 constexpr 放在 else-if 之后吗?

    灵感来自这个答案 https stackoverflow com a 52355930 7151494 我尝试复制并粘贴 并在中添加测试main 这段代码 template
  • Perl 5 中存在哪些伪运算符?

    我目前正在记录 Perl 5 的所有运算符 请参阅佩洛普夫 http github com cowens perloprefGitHub 项目 我决定也包含 Perl 5 的伪运算符 对我来说 Perl 中的伪运算符是任何看起来像运算符的东
  • C - 取消引用空指针

    我正在尝试创建自己的交换函数 但遇到了麻烦 为什么我收到 取消引用空指针 void ft swap void a void b size t nbytes unsigned char cur a unsigned char cur b si