关于两次指针(struct型)传参数的问题
这两天被struct传参给郁闷死了。今天终于解决了。
比如有一个struct如下:
struct _ns1__Add_USCORESensorDataArray
{
struct xsd__base64Binary *btSensoridArr; /* optional element of type xsd:base64Binary */
struct ns1__ArrayOfUnsignedShort *u16DeviceIDArr; /* optional element of type ns1:ArrayOfUnsignedShort */
struct ns1__ArrayOfDouble *dSensorValueArr; /* optional element of type ns1:ArrayOfDouble */
unsigned short u16Length; /* required element of type xsd:unsignedShort */
};
它的子struct分别如下:
/// Built-in type "xs:base64Binary".
struct xsd__base64Binary
{ unsigned char *__ptr;
int __size;
char *id, *type, *options; // NOTE: for DIME and MTOM XOP attachments only
};
struct ns1__ArrayOfUnsignedShort
{
/// Size of array of unsigned short* is 0..unbounded
$int __sizeunsignedShort 0;
/// Array unsigned short* of length 0..unbounded
unsigned short* unsignedShort 0;
};
struct ns1__ArrayOfDouble
{
/// Size of array of double* is 0..unbounded
$int __sizedouble_ 0;
/// Array double* of length 0..unbounded
double* double_ 0;
};
struct _ns1__Add_USCORESensorDataArray a;
然后可以看到,,,如果是给a赋值,,,
必须这样赋。
struct ns1__ArrayOfUnsignedShort b;
struct ns1__ArrayOfDouble c;
unsigned short loc_i = 200;
unsigned char port_i = 1;
double d_i= 5000;
b.unsignedShort = &loc_i;
b.__sizeunsignedShort = sizeof(loc_i);
a.u16DeviceIDArr = &b;
因为虽然申明了a, 但是a没有赋初始值,然后初始值就没有初始地址。如果直接调用a会发生段错误。
此时需要把子struct 申明,如b。
然后用b一样的类型地址赋给a的值,这样才不会有段错误。
关于两次指针(struct型)传参数的问题的更多相关文章
- 引用 U-boot给kernel传参数和kernel读取参数—struct tag
引用 清风徐徐 的 U-boot给kernel传参数和kernel读取参数—struct tag U-boot会给Linux Kernel传递很多参数,如:串口,RAM,videofb等.而Linux ...
- 传参数应该用哪种形式——值、引用、指针?
类型:C++ & Qt4,创建时间:十二月 30, 2011, 7:43 p.m. 标题无"转载"即原创文章,版权所有.转载请注明来源:http://hgoldfish.c ...
- 编程写一个方法时,注意方法中传参数的数量最好不要超过5个,超过5个怎么办?可以用struct或class,或一个字典类
图 1 一.从图1发现了什么问题呢? 答案:1.参数传的的太多了:2.另外注释也没写好. 说明:一个方法中,传参数的数量最好不要超过5个. 应该采用:struct或class,或一个字典类都行.其中 ...
- 分页传参数的两种形式,url正则 ?id=1
目的: 打开http://127.0.0.1:8000/home 点击查看详情转到 http://127.0.0.1:8000/detail-1-1.html实现查看具体信息 一,利用url路由 ...
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...
- 【ASP.NET Core】给中间件传参数的方法
最近博客更新频率慢了些,原因有三: 其一,最近老周每星期六都录 ASP.NET Core 的直播,有些内容在视频里讲过,就不太想在博客里面重复.有兴趣的话可以去老周的微博看,或者去一直播,直播帐号与微 ...
- 剑指offer25:复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),结果返回复制后复杂链表的head。
1 题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用 ...
- 如何给main传参数
main 函数的参数有连个argc argcv[] argc 是参数个数 argcv是参数的数组指针,且argcv的第一个参数是默认程序路径加程序名 给main传参数,需要在命令行启动程序时设置 如 ...
- Chrome和Firefox浏览器执行new Date() 函数传参数得到不同结果的陷阱
某日,同事问到关于new Date() 函数传参数,在火狐浏览器和谷歌浏览器控制台运行,会得到不同的结果,刚开始觉得不可能,后来实际操作才发现此陷阱 var date = new Date('2014 ...
随机推荐
- UVA1351-----String Compression-----区间DP(记忆化搜索实现)
本文出自:http://blog.csdn.net/dr5459 题目地址: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&a ...
- git Bug分支
Bug分支 软件开发中,bug就像家常便饭一样.有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你接 ...
- ADB几种常见的错误及解决方法
下面列举出几种常见的错误及解决方法. Q1:无效的安装包,安装包已损坏[INSTALL_FAILED_INVALID_APK] A1:请检查安装包是否完整.如果是xpk包,可以通过 手动安装xpk来检 ...
- S3C6410嵌入式应用平台构建(二)
[2014-4/11~4/14]经过之前的实验,对Uboot已经有了大体的了解,前我们已经把led灯给点亮,但这不是我们的根本目的,我们是要进入boot启动,经过两天的分析代码和反复的实验,终于可以进 ...
- 关于cocos2d安装时编译不成功(个人心得)
在解压cocos2d执行vs2010.sln时错误发生不能成功生成.遇到这样的错误: 1>c:\program files\microsoft sdks\windows\v7.0a\includ ...
- SQL Server索引进阶第十一篇:索引碎片分析与解决
相关有关索引碎片的问题,大家应该是听过不少,也许也很多的朋友已经做了与之相关的工作.那我们今天就来看看这个问题. 为了更好的说明这个问题,我们首先来普及一些背景知识. 知识普及 我们都知道,数据库中的 ...
- 【转】Java保留固定小数位的4种方法
package com.test; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.Numb ...
- Maven java项目管理工具
Maven java项目管理工具 1.安装maven 下载最新的maven 下载地址 http://maven.apache.org/download.cgi 传到要安装的目录 例如/opt/下 # ...
- BHO启动IE调试
如下图选择Web Browser Debugger, 输入启动网址
- Struts2相关注意点
今天开始学习Struts2,有一个小栗子用到了DMI动态方法调用,使用DMI可以减少action的数量简化程序,不用在struts.xml的action中定义method属性.刚开始怎么也不能使用DM ...