将限制限定指针传递给函数?

2024-04-18

限制限定指针向我解释为有一个规则:任何由指针访问并在任何地方修改的对象只能由指针访问。那么下面的方法是行不通的,对吧?

void agSum( int * restrict x, int n ){
   for(int i=0; i<n-1; i++) x[i+1] += x[i];
}

int SumAndFree( int * restrict y, int n ){
    agSum(y);
    printf("%i",y[n-1]);
    free(y);
}

所以,我猜这是无效的,因为 y[n-1] 在不直接从限制指针 y 访问的地方被修改,并且由 y 读取。

如果这是正确的,那么当输入指针受到限制时,如何调用函数?看起来该函数在不违反限制规则的情况下无法执行任何操作。

释放限制指针是否又是一次违规?我想这是一种修改。

提前致谢!


你的代码是正确的。什么时候SumAndFree calls agSum,它传递一个派生的指针y。所以该块下的所有访问SumAndFree的主体是使用派生的指针完成的y.

打电话就好free too.

您的函数不执行任何读取或写入操作x and y, so restrict实际上在这种情况下没有任何作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将限制限定指针传递给函数? 的相关文章

  • IEnumerable 的 String.Join(string, string[]) 的类似物

    class String包含非常有用的方法 String Join string string 它从数组创建一个字符串 用给定的符号分隔数组的每个元素 但一般来说 它不会在最后一个元素之后添加分隔符 我将它用于 ASP NET 编码 以用
  • 将 OpenCV Mat 转换为数组(可能是 NSArray)

    我的 C C 技能很生疏 OpenCV 的文档也相当晦涩难懂 有没有办法获得cv Mat data属性转换为数组 NSArray 我想将其序列化为 JSON 我知道我可以使用 FileStorage 实用程序转换为 YAML XML 但这不
  • 如何以编程方式播放 16 位 pcm 数组 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个包含 16 位 pcm 值的短 数组 我希望能够在不添加任何标题 也不将任何文件保存到内存的情况下播放它 我知道我可能需要一个提供
  • C 中“complex”的默认类型

    根据我读过的文档 C99 和更高版本的支持float complex double complex and long double complex作为复杂类型 但是 此代码在使用时编译时不会发出警告gcc Wall Wextra inclu
  • while循环中的变量初始化

    我有一个可以分块读取文件的函数 public static DataObject ReadNextFile 数据对象看起来像这样 public DataObject public string Category get set And ot
  • 有什么方法可以重载 C# 中的扩展方法吗?

    我有以下模型模式 public abstract class PARENTCLASS public class CHILD A CLASS PARENTCLASS public static class EXTENSION public s
  • 在 C++11 中移出 stdpriority_queue 的元素

    最小的工作示例 include
  • 通过 C# Mailkit / Mimekit 发送电子邮件,但出现服务器证书错误

    Visual Studio 2015 中的 0 代码 1 我正在使用 Mailkit 最新版本 1 18 1 1 从我自己的电子邮件服务器发送电子邮件 2 电子邮件服务器具有不受信任的自签名证书 3 我在代码中添加了以下两行 以忽略服务器证
  • 用于连接 DataTable 上的动态列的动态 LINQ

    我目前遇到的情况不确定如何继续 我有两个从数据库填充的数据表 我还有一个可用的列名称列表 可用于将这两个数据表连接在一起 我希望编写一组 LINQ 查询 这些查询将 显示两个数据表中的行 内部联接 用于从一个数据表更新另一个数据表 显示一个
  • 如何使用递归查找数字中的最小元素 [C]

    好的 所以我正在准备我的 C 考试 当谈到递归时我有点卡住了我是大学一年级的学生 这对我来说似乎有点困难 练习要求在给定的数字中使用递归函数我需要找到最小的元素 例如 52873 是 2 程序需要打印 2 include
  • 在 Go to 函数中通过引用和值传递

    我对 Go 中通过引用和值传递有点困惑 我已经看到过对类型前面的 的解释 在类型名称前面 表示声明的变量将存储该类型的另一个变量的地址 而不是该类型的值 类型 这对我来说毫无意义 在Java中 如果我将数据库实例传递给函数 我会这样做 da
  • 使用 OleDbCommandBuilder 时访问 SQL 语法错误

    我要在 C 中使用 OleDbDataAdapter 在 Access 数据库中插入数据 但收到错误消息INSERT INTO 命令中的语法错误 BackgroundWorker worker new BackgroundWorker Ol
  • 将错误代码映射到 C++ 中的字符串

    将错误代码从枚举映射到字符串的更有效方法是什么 在 C 中 例如 现在我正在做这样的事情 std string ErrorCodeToString enum errorCode switch errorCode case ERROR ONE
  • 使用多线程进行矩阵乘法?

    我应该使用线程将两个矩阵相乘 有两件事 当我运行程序时 我不断得到 0 我还收到消息错误 对于每个错误 它在粗体行上显示 警告 从不兼容的指针类型传递 printMatrix 的参数1 我尝试打印输出 还要注意 第一个粗体块 这是我解决问题
  • C# 中的 C/C++ 代码编译器

    在 C 中 我可以使用下面的代码编译 VB 和 C 代码 但无法编译 C C 代码 有什么办法可以做到这一点吗 C 编译器 public void Compile string ToCompile string Result null st
  • 为什么 f(i = -1, i = -1) 是未定义的行为?

    我正在读关于违反评估顺序 http en cppreference com w cpp language eval order 他们举了一个令我困惑的例子 1 如果标量对象上的副作用相对于同一标量对象上的另一个副作用是无序的 则行为未定义
  • 如何在dll级别读取app.config? [复制]

    这个问题在这里已经有答案了 我在一个解决方案中有一个控制台应用程序项目和库项目 dll The 图书馆项目有 app config 文件 我在其中存储我在库中使用的一些键值对 控制台应用程序引用此 dll 我有另一个 app config
  • Xamarin.Forms UWP 项目中标题栏和选项卡之间令人恼火的空白

    我几乎是新手Xamarin Forms我正在开发一个相当简单的跨平台应用程序 该应用程序在 Android 中显示得足够好 但在 UWP 中却出现了一个愚蠢的空白 该项目由一个 TabbedPage 组成 其中包含 4 个 Navigati
  • 有没有办法直接在函数参数中格式化字符串而不是使用临时字符串?

    我有一个接受字符串 字符数组 作为参数的函数 void enterString char my string 当使用这个函数时 我经常发现自己想要输入格式化的字符串 我使用 sprintf 来做到这一点 然而 我每次都必须创建一个临时字符串
  • SQL Server“未找到网络路径”在不同环境中随机且不频繁地发生

    类似 如果不是同一个问题 随机遇到网络路径未找到异常 https stackoverflow com questions 38696448 network path not found exception encountered rando

随机推荐

  • Xcode 4 Interface Builder:如何设置文件所有者

    我定义了 myController h 和 myController m 并继续使用向导创建 myController xib 但是 我无法将 xib 文件中的控件连接到类接口 通常 当我将连接十字线放在文件所有者图标上时 它会显示已声明为
  • 为什么我的 MySQL 数据列中只保存了 64kB 数据?

    我试图将一个很长的文本字符串插入到 MySQL Blob 列中 但 MySQL 只保存了 64kB 的数据 该字符串的长度为 75360 个字符 我正在使用 PHP 连接mysql connect 有任何想法吗 它是 Blob 还是 Tex
  • 在 iOS 中使用触摸绘制水平或垂直线

    我正在开发一个项目 我希望如果用户触摸在水平方向移动 则应绘制水平线 如果用户触摸在垂直方向移动 则应绘制垂直线 请建议一些使用 Swift 的解决方案 我在下面尝试过 但这是自由的 override func touchesBegan t
  • PHP call_user_func 与仅调用函数

    我确信对此有一个非常简单的解释 这有什么区别 function barber type echo You wanted a type haircut no problem n call user func barber mushroom c
  • MVC ASP.NET 地图路由不适用于表单 GET 请求

    In View using Html BeginForm PageName ControllerName FormMethod Get
  • 如何在 C++ 中创建内存泄漏?

    我只是想知道如何使用 C 创建系统内存泄漏 我对此进行了一些谷歌搜索 但没有得到太多结果 我知道在 C 中执行此操作实际上不太可行 因为它是托管代码 但想知道是否有一种简单的方法可以用 C 执行此操作 我只是觉得看看系统因代码编写不正确而受
  • Netbeans - 类没有 main 方法

    我的程序只是一个简单的 System out println 但是netbeans找不到main方法 netbeans 6 7 1和WIN7有冲突吗 有什么可能的错误吗 当您手动移动主类位置时会发生这种情况 因为 Netbeans 不会刷新
  • 如何有条件地跳过 Cucumber 中的场景?

    如何有条件地跳过场景 例如 我希望仅在满足某些条件时才继续某个场景 但如果不存在 我不希望将其注册为失败 这是我遇到的一个问题 我编写的测试是针对一个 UI 该 UI 具有不断变化的 BE 数据库 我目前无法在其中包含静态数据 这意味着有时
  • 在 javascript 中查找经过的时间

    我是 JavaScript 新手 我正在尝试编写一段代码来计算从用户登录到当前时间所经过的时间 这是我的代码 function markPresent window markDate new Date document ready func
  • /admin 处导入错误:没有名为 defaults 的模块

    我正在将我的网站从 django 1 4 升级到 django 1 6 但它一直出现以下错误 admin 处的 ImportError 没有名为 defaults 的模块 其他地方都说你应该这样做 from django conf urls
  • 如何在IIS7.5上Response.Write?

    我正在尝试写一个给客户的回复 response StatusCode int HttpStatusCode BadRequest response ClearContent response Write String Format CRLF
  • 在delphi中的“自定义”浏览器中修改requestHeaders

    我的 deplhi 应用程序 IE 中集成了一个浏览器 我需要调用某个 Web 应用程序 并且需要在标头中为来自应用程序浏览器的所有请求附加一个新变量 例如 jquery 添加到 xhrobjHTTP X REQUESTED WITH范围
  • 使用 jQuery 进行渐变填充?

    我有一个 div 需要渐变背景 然而 div 的大小是可变的 这让我又回到了 不能在 CSS 中做渐变 的境地 然而 我很确定这在 jQuery 中是可能的 我只是似乎找不到一个合适的例子 有人可以指点我的方向吗 Thanks 如果有人需要
  • 如何更新猫鼬嵌套数组文档[重复]

    这个问题在这里已经有答案了 我知道这个问题是重复的 但我不知道为什么我被困住了 Question 我怎样才能编辑 requirement update 数组文档 使用 find by id and requirement update id
  • 带有条件 isset 的 If 语句和比较不能一起工作

    我在制作时遇到问题if声明 code if detail variable exists and is equal to 1 code if detail variable doesn t exist or is not equal 1 由
  • 如何向 dateadd sql 添加小时、分钟、秒?

    我想要一个完整的约会 所以今天是 7 7 2010 12 00 00 am 到 7 7 2010 11 59 59 pm 所以这应该是完整的 24 小时 因为上午 12 00 00 就是 8 号 所以我有这个 select DATEADD
  • Python Pandas - 根据组中值的存在来过滤组

    我需要按一列对数据框进行分组 然后过滤掉另一列中不包含特定值的所有组 例如 这是我的数据框 A B 1 False 1 True 2 False 2 False 3 True 3 False 4 False 我想按 A 列进行分组 然后删除
  • 当我使用 asp.net 从 xml 文件写入/读取时保留回车符

    我有 TextBox 来获取用户的评论 评论将保存到 XML 文件中 问题是当我写一个文本有回车键 新行 时 它会以正确的方式保存到xml中 像这样
  • Interface-Builder:将 NSView 类与 .xib“组合”

    我想在 Interface Builder 中设置一个自定义 NSView 但我无法让它在 OSX 上工作 在我的 ViewController 的 xib 中 我添加了一个自定义视图并将类设置为 MyCustomView 我创建了 MyC
  • 将限制限定指针传递给函数?

    限制限定指针向我解释为有一个规则 任何由指针访问并在任何地方修改的对象只能由指针访问 那么下面的方法是行不通的 对吧 void agSum int restrict x int n for int i 0 i