delete

C++野指针的存在方式和误区

♀尐吖头ヾ 提交于 2020-02-26 02:40:48
1. char* x;这样的一定是野指针,指针声明时要直接初始化!或者置null也行! 2. 1 int main() 2 { 3 char *x=new char; 4 delete x; 5 cout<<*x; 6 getchar(); 7 return 0; 8 } delete x;之后,x就是一个野指针。 1 int main() 2 { 3 char *x=new char[10]; 4 cout<<*x; 5 strcpy(x,"dqwdqw"); 6 delete []x; 7 cout<<x; 8 getchar(); 9 return 0; 10 } 这段代码是能运行的,但delete[]x;之后,x就成为了一个野指针,输出的结果是未定义的。这里我们应该加上: x=nullptr; 或者malloc之后free掉的指针,也是上面的情况,一定要把指针置null。 3. 函数参数为二级指针&p,将p指向了函数中的临时变量。函数调用完毕后,p这个指针就变为了野指针。 1 int f(char** x){ 2 char p=97; //'a' 3 *x=&p; 4 } 5 int main() 6 { 7 char a=65; //'A' 8 char *x=&a; 9 f(&x); 10 cout<<*x; 11 getchar(); 12 return 0; 13

shell脚本:遍历删除

倖福魔咒の 提交于 2020-02-26 02:35:04
遍历删除文本内路径上文件 windows上测试可以安装Git linux中,准备删除文件的脚本deleteFile.sh,picture.txt保存待删除文件的文件路径,picture文件夹下面有三张待删除图片a/b/c.jpg deleteFile.sh脚本如下: #!/bin/bash #shell脚本 保存路径的文本 #./deleteFile.sh ./picture.txt #判断位置参数是否为1 if [ $# -ne 1 ];then echo "Usage $0 filename" exit fi #判断位置参数是否为文件 if [ ! -f $1 ];then echo "the $1 is not a file" exit fi #待删除文件路径的文本 filename=$1 echo "filename: $filename" >> info.txt #计算待删除的文件数量(总行数) NUM=`sed -n '$=' $filename` echo "picture delete num: $NUM" #逐行读取文件内容并删除对应路径的文件 success=0 for i in `cat $filename` do #成功信息重定向输出到info.txt echo "delete success: $i" >> info.txt rm -rf $i

架构师必备之常见面试题整理——数据库灵魂十问!

假如想象 提交于 2020-02-26 02:13:31
常见的数据库面试题有哪些 (一)什么是存储过程?有哪些优缺点? 存储过程是一些预编译的SQL语句。 更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。 存储过程是一个预编译的代码块,执行效率比较高 一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信速率 可以一定程度上确保数据安全 (二)索引是什么?有什么作用以及优缺点? 索引是对数据库表中一或多个列的值进行排序的结构,是帮助MySQL高效获取数据的数据结构 你也可以这样理解:索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。 MySQL 数据库几个基本的索引类型:普通索引、唯一索引、主键索引、全文索引 索引加快数据库的检索速度 索引降低了插入、删除、修改等维护任务的速度 唯一索引可以确保每一行数据的唯一性 通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能 索引需要占物理和数据空间 (三)什么是事务? 事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列

Spring Boot(七):Mybatis 多数据源最简解决方案

淺唱寂寞╮ 提交于 2020-02-26 01:30:15
说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务。我们遇到的情况是后者,网上找了很多,大都是根据 Jpa 来做多数据源解决方案,要不就是老的 Spring 多数据源解决方案,还有的是利用 Aop 动态切换,感觉有点小复杂,其实我只是想找一个简单的多数据支持而已,折腾了两个小时整理出来,供大家参考。 废话不多说直接上代码吧 我们以 Mybatis Xml 版本为例,给大家展示如何如何配置多数据源。 配置文件 Pom 包就不贴了比较简单该依赖的就依赖,主要是数据库这边的配置: mybatis.config-location=classpath:mybatis/mybatis-config.xml spring.datasource.test1.jdbc-url=jdbc:mysql://localhost:3306/test1?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true spring.datasource.test1.username=root spring.datasource.test1.password=root spring.datasource.test1.driver-class-name=com.mysql.cj.jdbc

用Rsync,实现网站的增量部署

时间秒杀一切 提交于 2020-02-26 01:23:04
整个网站通常会很大,尤其的其中静态的图片视频之类,但我们通常不会修改他们,平常只会修改几个文件,如果每次更新都将整个网站从本地上传到服务器,无疑很费时间,如果要找到修改的文件,并只上传这些文件,甚至只上传这些文件修改的部分,无疑会方便很多。 这就要用的到今天的主角 Rsync ,Rsync 可以执行增量备份,它只传输源文件和目标文件之间不一致的部分 环境: web服务器root目录 /usr/share/nginx/game.shaochenfeng.com 本地项目目录 /git/game.shaochenfeng.com/public 首先建议配置好本地到web服务器的ssh免密码登陆[如何?](),不配置需要以后每次同步时输入密码 1.在web服务器端安装rsync 直接yum或apt安装就可以,在服务器端和本地都安装 yum install rsync # 红帽系 apt install rsync # Debian系 为什么要在服务器也安装rsync呢?因为虽然是通过ssh建立链接,但rsync使用的是自己的传输规则,而不是scp 2.向服务器推送 在本地执行,同步 本地项目目录 到 web服务器root目录 rsync -avz --delete <本地路径> www@192.168.56.10:<远程路径> rsync -avz --delete /git/game

rsync

故事扮演 提交于 2020-02-25 22:13:45
Rsync 一款快速增量备份工具 支持远程同步,支持上传和下载 命令: Rsync [选项] 原始位置 目标位置 -a:归档模式,递归并保留对象属性,等同于 -rlptgoD -v:显示同步过程的详细(verbose)信息 -z:在传输文件时进行压缩(compress) -H:保留硬连接文件 -A:保留ACL属性信息 --delete:删除目标位置有而原始位置没有的文件 --checksum:根据对象的校验和来决定是否跳过文件 上传:rsync -avz A(/opt/ ) B(root@目标IP:/root/html) rsync -avz A(/opt/ ) B(root@目标IP::wwwroot) :: 表示连接的是共享文件夹 将A主机的文件上传到主机B 下载:rsync -avz B(root@IP:/root/html) A(/opt/ ) rsync -avz B(root@目标IP::wwwroot) A(/opt/ ) A是客户端,B是服务器 实验:2台linux 服务器:192.168.80.182 客户端:192.168.80.181 客户端:安装rsync工具 服务器: 1 yum install -y rsync 2 vi /etc/rsyncd.conf uid = nobody gid = nobody use chroot = yes address

ABAP 数据库操作

↘锁芯ラ 提交于 2020-02-25 22:06:56
Open SQL中使用INSERT、UPDATE、MODIFY和DELETE语句进行数据的更新操作,其中当SY-DBCNT返回为0,则表示操作成功,此外还 将返回实际操作的数据行数。需要指明的是Open SQL本身并不进行操作权限的检查,若需要进行设定,则要在系统中创建授权对象。 一.INSERT语句 Open SQL中的INSERT语句用于向数据库中插入新条目。 1.插入单行数据: INSERT INTO dbtab VALUES wa. INSERT INTO dbtab FROM wa. wa为工作区,是与数据库具有相同结构的数据对象,一般直接基于数据库结构声明。该语句也可以将数据插入视图中,首先该视图所有字段必须来自同一个数据库表,而且在数据字典中的maintenance status属性必须设定为read and change 注:如果相同表关键字的数据条目已经存在,则不能重新插入,只能对非关键字进行更改(UPDATE,MODIFY) 2.插入多行数据 INSERT dbtab FROM TABLES itab. 其中itab是内表,包含希望插入的数据条目。 注:内表应与数据库的行结构一致。 所有条目成功插入,则SY-SUBRC返回0 使用ACCEPTING DUPLICATE可避免该错误。 INSERT dbtab FROM TABLE itab ACCEPTING

Python 根据MD5判断相同文件

拈花ヽ惹草 提交于 2020-02-25 19:42:51
import hashlib import os import send2trash import time ''' 根据MD5判断查找一个目录下的相同文件,并且可以选择是否删除 ''' def getMD5(path): f=open(path,'rb') d5 = hashlib.md5() #生成一个hash的对象 with open(path,'rb') as f: while True: content = f.read(40960) if not content: break d5.update(content) # 每次读取一部分,然后添加到hash对象里 # print('MD5 : %s' % d5.hexdigest()) return d5.hexdigest() # 打印16进制的hash值 def getSha512(path): f = open(path, 'rb') sh = hashlib.sha512() with open(path,'rb') as f: while True: content = f.read(40960) if not content: break sh.update(content) # print(sh.hexdigest()) return sh.hexdigest() # 装饰器,计算时间用的 def timer

没有路线匹配“ / users / sign_out”设计导轨3

不羁的心 提交于 2020-02-25 15:26:25
我已经在我的应用程序上安装了devise,并在我的 application.html.erb 文件中应用了以下内容: <div id="user_nav"> <% if user_signed_in? %> Signed in as <%= current_user.email %>. This cannot be cheese? <%= link_to 'Sign out', destroy_user_session_path %> <% else %> <%= link_to 'Register', new_user_registration_path %> or <%= link_to 'Sign in', new_user_session_path %> <% end %> </div> 我跑了 rake routes 并确认所有路线均有效。 另外,在我的 routes.rb 文件中,我有 devise_for :users 和 root :to => "home#index" 。 单击“注销”链接时,出现以下路由错误: No route matches "/users/sign_out" 任何想法导致错误的原因是什么? #1楼 在“ devise_for:users”之前查看您的routes.rb是否具有“ resource:users”,然后尝试交换它们: 作品

ibatis与spring继承

久未见 提交于 2020-02-25 05:38:13
作为开源的Orm对象映射框架,ibatis是一个线程 安全 ,学习容易,但是开发相对于hibernate来说的话,就要繁锁些,没有很好的工具支持ibatis所有的配置几乎是通过手写,这样增加了开发者的难度、、好啦,言归正转。下面编写实现。 一、引入spring,ibatis jar包. 二、编写log4j.properties日志文件 log4j.rootLogger=DEBUG,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%c{1}% - %m%n log4j.logger.java.sql.PreparedStatement=DEBUG 三、建立Student.java类映象属性 package org.terry.ibatis.pojo; public class Student { private Long id; private String name; private String subject; private Long score; public Long getId() {