如何分配结构的内存?(How to allocate memory of a struct?)
我正在尝试为发送方结构分配内存并将其清零,但我不确定我是否正确执行此操作。 我正在尝试学习如何在我做这个项目时用C管理内存。 如何测试它以查看我设置的内存? 我会尝试做什么,或者有更好的方法吗?
typedef unsigned char uchar; typedef struct { uchar Seq; uchar Ack; uchar Flags; } Header; #define FRAME_PAYLOAD_SIZE 50 struct Frame_t { Header header; char data[FRAME_PAYLOAD_SIZE]; uchar CRC; }; typedef struct Frame_t Frame; struct Sender { uchar winSize; struct sendSlot { struct timeval timeout; Frame msg; } sendQ[5]; }; initSend(Sender* sender) { sender->winSize = -1; char* send_buf = (char*) malloc(5 * sizeof(sender->sendQ[0])); memset(send_buf, 0, 5 * sizeof(sender->sendQ[0])); int i; for (i=0; i<sizeof(sender->sendQ)/sizeof(sender->sendQ[0]); i++) { memset(sender->sendQ[i].timeout, 0, sizeof(struct timeval)); sender->sendQ = NULL; } }
I am trying to allocate memory and zero it out for the sender struct but I'm not sure if I am doing this correctly. I'm trying to learn how to manage memory in C while I am doing this project. How can I test it to see what I set the memory to? And will what I am trying to do work, or is there a better way of doing this?
typedef unsigned char uchar; typedef struct { uchar Seq; uchar Ack; uchar Flags; } Header; #define FRAME_PAYLOAD_SIZE 50 struct Frame_t { Header header; char data[FRAME_PAYLOAD_SIZE]; uchar CRC; }; typedef struct Frame_t Frame; struct Sender { uchar winSize; struct sendSlot { struct timeval timeout; Frame msg; } sendQ[5]; }; initSend(Sender* sender) { sender->winSize = -1; char* send_buf = (char*) malloc(5 * sizeof(sender->sendQ[0])); memset(send_buf, 0, 5 * sizeof(sender->sendQ[0])); int i; for (i=0; i<sizeof(sender->sendQ)/sizeof(sender->sendQ[0]); i++) { memset(sender->sendQ[i].timeout, 0, sizeof(struct timeval)); sender->sendQ = NULL; } }
原文:https://stackoverflow.com/questions/33191801
更新时间:2022-06-21 21:06
最满意答案
如果你需要一个隔离范围,那么有两个选项第一个选项是使用回调
updateDisplayText
如下所示:JS
app.controller('controller11', ['$scope', function ($scope) { $scope.displayText = "nature animal plant"; $scope.updateDisplayText = function(text) { $scope.displayText = text; } }]); app.directive("blurredFocused", [function () { return { restrict: "A", priority: -1, scope: { updateDisplayText: "=" }, link: function (scope, ele, attrs) { ele.on("blur", function () { scope.$apply(function () { scope.updateDisplayText("nature animal plant"); }); }); ele.on("focus", function () { scope.$apply(function() { scope.updateDisplayText("networkText"); } ); }) } } }]);
HTML
<div class="topSearchView"> <input type="text" blurred-focused='databaseForm.connectionName' update-display-text="updateDisplayText" name="connectionName"> </div> <div class="resultView"> <ul> <li> <span>{{displayText}}</span> </li> </ul> </div>
第二种方法是将
displayValue
作为对象,如下所示:JS
app.controller('controller11', ['$scope', function ($scope) { $scope.displayText = {value: "nature animal plant"}; }]); app.directive("blurredFocused", [function () { return { restrict: "A", priority: -1, scope: { displayText: "=" }, link: function (scope, ele, attrs) { ele.on("blur", function () { scope.$apply(function () { scope.displayText.value = "nature animal plant"; }); }); ele.on("focus", function () { scope.$apply(function() { scope.displayText.value = "networkText"; } ); }) } } }]);
HTML
<div class="topSearchView"> <input type="text" blurred-focused='databaseForm.connectionName' display-text="displayText" name="connectionName"> </div> <div class="resultView"> <ul> <li> <span>{{displayText.value}}</span> </li> </ul> </div>
If you need an isolate scope, then there are two options The first option is to use callback
updateDisplayText
like this:JS
app.controller('controller11', ['$scope', function ($scope) { $scope.displayText = "nature animal plant"; $scope.updateDisplayText = function(text) { $scope.displayText = text; } }]); app.directive("blurredFocused", [function () { return { restrict: "A", priority: -1, scope: { updateDisplayText: "=" }, link: function (scope, ele, attrs) { ele.on("blur", function () { scope.$apply(function () { scope.updateDisplayText("nature animal plant"); }); }); ele.on("focus", function () { scope.$apply(function() { scope.updateDisplayText("networkText"); } ); }) } } }]);
HTML
<div class="topSearchView"> <input type="text" blurred-focused='databaseForm.connectionName' update-display-text="updateDisplayText" name="connectionName"> </div> <div class="resultView"> <ul> <li> <span>{{displayText}}</span> </li> </ul> </div>
The second approach would be to make
displayValue
as an object, like this:JS
app.controller('controller11', ['$scope', function ($scope) { $scope.displayText = {value: "nature animal plant"}; }]); app.directive("blurredFocused", [function () { return { restrict: "A", priority: -1, scope: { displayText: "=" }, link: function (scope, ele, attrs) { ele.on("blur", function () { scope.$apply(function () { scope.displayText.value = "nature animal plant"; }); }); ele.on("focus", function () { scope.$apply(function() { scope.displayText.value = "networkText"; } ); }) } } }]);
HTML
<div class="topSearchView"> <input type="text" blurred-focused='databaseForm.connectionName' display-text="displayText" name="connectionName"> </div> <div class="resultView"> <ul> <li> <span>{{displayText.value}}</span> </li> </ul> </div>
相关问答
更多-
您可以使用JSOM将数据插入到您的SharePoint列表中,如下所示: var ctx = new SP.ClientContext.get_current(); var list = web.get_lists().getByTitle("Custom List"); var listCreationInformation = new SP.ListItemCreationInformation(); var listItem = list.addItem(listCreationInformatio ...
-
我为我的问题找到了一个解决方案...由于我无法控制过滤值的确切程度以及过滤时遇到的几个问题,因此我将绑定列转换为未绑定列。 我删除了进行转换的编辑器,并使用自定义函数+显示格式的未绑定表达式替换它们。 不是我正在寻找的解决方案,但它适用于各种过滤。 I found a solution for my issue... As I have no control on how exactly the values are filtered and I had couple of problems with fi ...
-
如何更改input / textarea的border color:focus?(How to change border color of input/textarea on :focus?)[2023-05-04]
render() { return (After I went through some styling in React documentation it seems that the best option ...那么您可以将StringFormat用于特定的DatePicker日期格式(请查看此示例: 更改WPF DatePicker的字符串格式 ) 这是一个简单的例子(确保ViewModel是适合您的xaml文件的DataContext) 主窗口 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); var vm = new ViewModel ...id应该是唯一的。 当你使用$('#codbar').focus(); 要使用id codbar聚焦元素,选择第一个带有id的元素(这是隐藏的)。 用它作为课程。 使用autofocus属性。 id should be unique. When you use $('#codbar').focus(); to focus the el ...输入时显示文字(Display text as it is entered)[2022-05-13]
如果你需要一个隔离范围,那么有两个选项第一个选项是使用回调updateDisplayText如下所示: JS app.controller('controller11', ['$scope', function ($scope) { $scope.displayText = "nature animal plant"; $scope.updateDisplayText = function(text) { $scope.displayText = text; } }] ...如何使用javascript在新窗口中的html字段中显示值?(How do I display value in a html field in a new window with javascript?)[2021-10-02]
您正在尝试在当前窗口而不是新窗口上设置元素的innerHTML,第一个窗口上不存在displayText,将文档更改为: tmp.getElementById("displayText").innerHTML = a; You are trying to set the innerHTML of the element on the current window and not the new window, displayText does not exist on the first window, ...您可以尝试覆盖QStyledItemDelegate::initStyleOption并自己设置text因为现在由qt完成 。 You can try to override QStyledItemDelegate::initStyleOption and set the text yourself as this is now done by qt.你在has()选择器缺少. 该类的前缀。 您还需要检查生成的jQuery对象的length属性。 试试这个: var displayText = "Empty"; $(".glyph-holder").click(function() { if ($(this).has(".icon-flip-horizontal").length) { displayText = "icon-flip-horizontal"; } else if ($(this).has(".icon-fli ...相关文章
更多- Spark - A Fault-Tolerant Abstraction for In-Memory Cluster Computing
- CLR Via C# 3rd 阅读摘要 -- Chapter 21 – Automatic Memory Management (Garbage Collection)
- Becoming a data scientist
- Solr: a custom Search RequestHandler
- Create a Bootable MicroSD Card
- Hadoop Map/Reduce内存限制
- POJ 3620 Avoid The Lakes【DFS水题练格式Avoid The Lakes Time Limit: 1000MS Memory Limit: 65536K Total Sub】
- 13年7月memory point
- 一次内存泄露问题的排查
- Stack Overflow Architecture Update - Now At 95 Million Page Views A Month
最新问答
更多- 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
- 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
- OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
- 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
- codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
- 在计算机拍照在哪里进入
- 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
- No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
- 单页应用程序:页面重新加载(Single Page Application: page reload)
- 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
- System.StackOverflow错误(System.StackOverflow error)
- KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
- 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
- android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
- TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
- 企业安全培训的各项内容
- 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
- C#类名中允许哪些字符?(What characters are allowed in C# class name?)
- NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
- 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
- 将多个行和可变行移动到列(moving multiple and variable rows to columns)
- 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
- 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
- Angular $资源不会改变方法(Angular $resource doesn't change method)
- 在Angular 5中不是一个函数(is not a function in Angular 5)
- 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
- 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
- 常见的python rpc和cli接口(Common python rpc and cli interface)
- Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
- 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)