精华内容
下载资源
问答
  • 智能指针之使用空指针错误

    千次阅读 2017-08-24 21:18:03
    使用空指针
    typedef std::deque<double> AglSeq; 
    typedef boost::shared_ptr<AglSeq> AxisSeqPtr; 
    typedef std::vector<AxisSeqPtr> N_AxisSeqPtr;
    typedef N_AxisSeqPtr::size_type N_AxisSeqPtrIdx;
    N_AxisSeqPtr nAglSeqPtr;

    在一个函数中有如下处理:

    lRet = pSlave->calcInverseKin_RPY(posr, pLast, posACS);
        if (lRet != RBTINTERF_NO_ERROR)
        {
            logMsg((char*)"Error:pSlave->calcInverseKin_RPY(posr, pLast, posACS)\n", 0,0,0,0,0,0);
            if (pGrpTcp_Base)
                pGrpTcp_Base->clear();
                for (N_AxisSeqPtrIdx idx=0; idx != nS+nM; ++idx)
                {
                    nAglSeqPtr[idx].reset(); //不能在这里reset()指针数组里的智能指针,否则会造成        wrongStop()中再次使用该指针数组中的指针时空指针错误
                }
            return lRet;
        }

    在出错后的处理函数wrongStop()中有以下代码时,就造成了使用指针中的经典错误:使用空指针

    wrongStop()
    {
        currentSize = nAglSeqPtr[0]->size() ;//在该函数中,使用者不知道nAglSeqPtr[0]里的指针在其他地方被重置变成空指针了,还以为指向之前的队列呢!!
    }

    经验总结
    在使用指针时,一定要建立起安全意识:我将要使用的指针是否为空指针。使用空指针是经典错误,要有判断是否为空指针的意识。此外还要有防止内存泄漏,野指针,重复释放内存,越界等经典错误。在工作中出现一次这种错误,留下惨痛教训,加深印象和理解,避免以后再犯类似错误。

    std::shared_ptr<int> p(new int());  // 1
    p.reset(new int());                 // 2

    1中动态分配了两份内存:一份为被管理对象int(); 一份为管理对象shared_ptr
    2中动态分配了一份内存,可能还释放了一份内存

    p = std::make_shared<int>(5); // assign to a newly created shared pointer
    p.reset(new int(5)); // take control of a newly created pointer
    
    p = new int(5); // 不能将原始指针(raw point)通过“=”赋给shared_ptr;应该用reset
    p.reset(std::make_shared<int>(5).get()); // 

    若要将raw point赋给shared_ptr,应该用reset(new xxxx);
    若要将shared_ptr赋给另一个shared_ptr ,应该用“=”

    展开全文
  • phpmyadmin使用空密码登入配置方法

    万次阅读 2016-03-15 23:17:34
    phpmyadmin连接mysql数据库,出于安全考虑,默认不允许使用空密码连接数据库。本文将介绍,使用phpmyadmin连接数据库,可使用空密码的配置方法。

    phpmyadmin连接mysql数据库,出于安全考虑,默认不允许使用空密码连接数据库。因为数据库一般都设置密码访问。

    但如果只是本机环境测试使用,每隔一段时间都需要填写密码,不是很方便。

    如果没有修改过配置,而使用空密码登入,phpmyadmin会返回错误提示:

    Login without a password is forbidden by configuration (see AllowNoPassword)

    我们可以修改phpmyadmin的配置文件,设置可使用空密码连接数据库

    配置修改如下:
    例如:数据库账号是root,密码为空

    打开phpmyadmin安装目录下的 libraries/config.default.php 文件,找到对应的配置,按下面的值进行修改即可。

    // MySQL user
    $cfg['Servers'][$i]['user'] = 'root';
    
    // MySQL password
    $cfg['Servers'][$i]['password'] = '';
    
    // Whether to try to connect without password
    $cfg['Servers'][$i]['nopassword'] = true;
    
    // whether to allow login of any user without a password
    $cfg['Servers'][$i]['AllowNoPassword'] = true; 
    展开全文
  • ViewStub的一些使用空指针问题

    千次阅读 2017-02-09 17:46:43
    ViewStub的一些使用空指针问题

    废话不说直接上代码

    <ViewStub
            android:id="@+id/vs"
            android:layout_width="112dp"
            android:layout_height="73dp"
            android:layout_marginRight="10dp"
            android:inflatedId="@+id/viewstub_column_inflated"
            android:layout="@layout/viewstub_column_cover">
    </ViewStub>

    layout就是我们的布局文件,里面我只放了一个ImageView就不贴出来了

    有些人会这样去加载

        vs.inflate();
        ImageView iv = (ImageView) vs.findViewById(R.id.iv);

    这样iv会抛出空指针的异常,需要注意的是当ViewStub被inflate后就会被layout的View给替换掉。
    所以对控件的一些属性设置要写在ViewStub里面,不要写在layout的View里面了,当inflate后,属性会被加载到View上。

    正确的写法应该是

        View view = vs.inflate();
        ImageView iv = (ImageView) view.findViewById(R.id.iv);

    inflate()被调用时, 被加载的视图会替代viewstub并且返回自己的视图对象

    或是这样写

        vs.inflate();
        View view = finViewById(R.id.viewstub_column_inflated);
        ImageView iv = (ImageView) view.findViewById(R.id.iv);

    这时候就得用到inflatedId,其实inflatedId就是新加载进来的view的id,如果需要获取这个view,就要用这个inflatedId,原来的id已经被取代了。

    展开全文
  • 最近使用kotlin重构项目,遇到了一个小问题! 在Java中,可能会遇到判断某个对象是否为,为执行一段逻辑,不为执行另外一段逻辑。查了下很多博客好像都是只对不为处理做讲解,没有同时把为处理的方法写...

    最近使用kotlin重构项目,遇到了一个小问题!

    在Java中,可能会遇到判断某个对象是否为空,为空执行一段逻辑,不为空执行另外一段逻辑。查了下很多博客好像都是只对不为空处理做讲解,没有同时把为空处理的方法写出来

     

    Java 代码如下:

    
    if (person!=null) {
      num ++;
      System.out.println("have person");
      ...    
    } else {
      num = 0;
    }

    使用kotlin 重构这段代码时,是有 ?.  以及 ?: 两个操作符可以简化空操作。

    简单说下 ?. 是对象 不为 null 时执行代码,?: 是对象 为 null 执行代码  ; 具体这两个的详细介绍可以参考其他博客,这里直接省略了。

     

    于是我试着使用kotlin 修改这段代码,原本以为可以这样写,发现会报错,  因为 ?: 不能跟赋值语句。

     person?.let { 
           println("have person")
           ...
           num++
     } ?: num =0    // 报错!! ?:后不能直接使用赋值语句

    这里可以使用 ?: let {  } 写法

     person?.let { 
           //不为空执行
           println("have person")
           ...
           num++
     } ?: let {
           //为空时执行
           num = 0
     }

     若目的仅仅只是在最后结果改变某个变量的值,可以例用let在最后会返回结果的特性,上面还可以继续修改为如下:

    num = person?.let {
                println("have person")
                ...
                num++
            } ?: 0

     

     

     

    展开全文
  • windows server 2016 域控下,域账户使用空密码、降低密码强度、复杂性的实施(主要在修改了域服务器的组策略后,域用户仍然无法配置空密码的情况) 首先:正常情况下,域账户要设置空密码,或者低复杂的密码,按照...
  • 1、设置 → 系统 → 2、电脑 → 属性 → 远程设置: ...运行 → 输入 gpedit.msc 确定 → 计算机配置 → ...“账号: 使用空密码的本地账户只允许进行控制台登录” → 本地安全设置 → 设置为 “已禁用” 即可。 ...
  • 这里简单说一下,用空太图来代替原始的图片。一般情况了,在图片加载前有 好几种方式: 比如 1-图片懒加载,2-图片预加载,3-背景图代替,4-态图代替。这里讲解一下态图的方式:**CSS**.status2-pic{ width: ...
  • 如何选择使用空画刷

    千次阅读 2010-12-04 12:16:00
    如何选择使用空画刷,通过SelectStockObject(NULL_BRUSH);来实现.
  • 使用空指针调用成员函数会如何? 举个例子:base是基类,里面有两个函数:non-virtual func2 以及 virtual func1; derived是派生类,使用public继承自base,里面有四个函数:virtual func1,non-virtual func3,non...
  • 1. 运行gpedit.msc打开组策略编辑器。 2. 在树状列表中打开:Windows设置->安全设置->本地策略->安全选项 3. 在右侧的列表中找到:账户:使用空白密码的本地账户只允许进行控制台登录 4. 禁用,确认
  • C语言中使用空的宏定义的作用

    千次阅读 2017-10-13 00:17:09
    在Windows网络编程中,发现Winsock2.h这个头文件中有一些的宏,即定义了一些NULL宏,例如:#define far #define near查了一下,作用是: 1.开关作用 2.有时起到注释作用 3.有时起到方便移植的作用 (暂时想到...
  • 控制面板--〉管理工具--〉Local Security Policy--〉安全设置--〉本地策略--〉安全选项:帐户:使用空白密码的本地帐户只允许进行控制台登录 (英文:Accounts : Limit local account use of blank passwords to ...
  • 打开注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Lsa分支,双击右侧列表中的LimitBlankPasswordUse,将其值修改为0即可。
  • 定义 元组(tuple):  不可变序列,一旦建立不能修改元组中的元素。 列表[list]:  可变序列,可以添加和删除其中的元素。...元组、列表、字典、集合 >>> a=() >>> b=[] &
  • 如上所示,Python中判断一个列表是否为,切不可是否None来判断,而应该直接判断,如if a,如果a为列表,则不成立,否则判断条件为真。 如果您觉得我的文章对您有所帮助,欢迎扫码进行赞赏! ...
  • java对象

    千次阅读 2018-10-18 14:33:47
     当使用null表示缺少对象时,在每次引用前都要测试其是否为null,因此需要在代码中加入判断语句,当判断语句变多时,代码就变得杂乱,使用空对象可以减少判断的语句。 例子:  假如有一个Person类,Person类有...
  • python创建元组_Python创建元组

    千次阅读 2020-07-28 22:01:19
    python创建元组 Python | 元组 (Python | empty tuple) In python, we can also create a tuple without having any element. An empty tuple is created using a pair of round brackets, (). 在python中,...
  • 但是很多人都不知道隔投送的具体使用方法,下面就让果粉客小编介绍介绍iPhone隔投送功能使用教程吧!iPhone隔投送功能使用教程介绍(这里以传送照片为例)1、打开手机依次打开“设置”——“通用”——“隔...
  • js判断对象和数组

    千次阅读 2019-03-20 17:11:26
    业务处理过程中经常需要对数据进行判断,这里介绍对象和数组的判断方法 数组的判断 if(Array.prototype.isPrototypeOf(obj)&&obj.length === 0){return true;} 对象的判断 if(Object....
  • sql 判断为不为Sometimes we have columns where null values are allowed. In such cases, SQL IS NULL is a very useful operator. 有时我们有允许空值的列。 在这种情况下,SQL IS NULL是一个非常有用的...
  • 对象模式

    千次阅读 2019-09-25 20:29:32
    介绍 在对象模式(Null ...在对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的对象类,该对象类将无缝地使用在需要检查空值的地方。 实现 我...
  • thinkphp3.2【操作和控制器使用

    千次阅读 2016-06-18 10:20:37
    操作和控制器使用操作:就没有指定的操作方法 控制器:没有指定控制器 http://网址/index.php/Home/User/login http://网址/index.php/Home/User/hello 操作 http://网址/index....
  • # SmallProgramEmptyLayoutDemo程序必的空布局(包含加载中、加载为空、加载错误、自己的布局)。完全不影响其他逻辑git地址:... 自己还是和原来那样开发小程序那样, 只是在你要使用空布局的根布局使用empty-l...
  • C/C++结构体,数组,类作用

    千次阅读 2018-01-01 10:08:52
    我们经常会遇到这些问题: (1)C++中定义一个类,他们它的大小...(5)类有什么? (6)数组有什么? 等等 这些问题,笔者在这篇文章统统做一个比较详细的解析和认识。     1,si
  • Mac怎么使用投送

    千次阅读 2019-11-03 15:46:31
    投送,是什么?利用“隔投送”,您可以通过无线方式将文稿、照片、视频、网站、地图位置等发送到附近的 iPhone、iPad、iPod touch 或 Mac。 1、怎么开启隔投送功能 1> 点击打开访达。 2> 在访达左边...
  • 文章前景,公司服务器需要压两天,在使用GUI模式下,本机Jmeter压了一天就蹦了,而且期间有错误请求,但是返回查看日志时,日志信息的请求、响应时间都显示为。 注意: 第6点Jmeter5.0更改放在Reporting 下 ...
  • mybatis使用foreach遍历list指针,笨法子解决 今天在使用foreach遍历list时,因为需要在list中追加数据,先是实例化一个arrayList(),然后在while循环里查找数据,向arrayList()中插入数据,当查到10条数据...
  • python中创建列表If you want to learn how to create an empty list in Python efficiently, then this article is for you. 如果您想学习如何在Python中高效地创建一个列表,那么本文适合您。 You will learn...
  • 将函数参数设置为 None,在python中,可变函数参数不输入为的时候,应该None代替不输入的真空。 示例代码: def Kong(None): pass
  • 1、使用指针的第一件事就是需要看这个指针是否是空指针(坚决不能使用空指针,否则程序就会蹦。意思就是:为一个指针赋值为空指针是不会报错的:char*p;但是在使用的时候一定要判断是否为空指针(即该指针有没有指向...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,465,095
精华内容 1,386,038
关键字:

如何用空