随笔分类 - c/cpp
摘要:函数的指针参数不能直接使用malloc,直接malloc指针还是NULL。 举例: void test_func(char *p, int num) { p=(char *)malloc(num); } 当调用test_func给p分配内存时就会失败,因为编译器会为每个函数的每个参数创建副本,实际上
阅读全文
摘要:数组名可以直接使用下标,也可以直接当作地址使用,直接做指针或者赋值给别的指针。不能把一个数组直接赋值给另一个数组,需要单个元素逐个赋值。 结构体名不能用下标,不能直接当地址用,不能直接赋值给指针,需要加&。可以把一个结构体直接赋值给另一个结构体,也可以逐个赋值。 结构体数组也是这样,数组名可以做地址
阅读全文
摘要:sqlite3本身没有提供加解密的实现代码,wxsqlite3实现了这个接口,4.5.1版的加解密接口sqlite3_rekey在codecext.c文件里面, 在sqlite3_rekey_v2接口里面是逐页读取然后加密再写进去,如果板子性能不好会比较耗时,最好打印一下进度。 在新建空的数据库时可
阅读全文
摘要:windows系统用一段时间就会变得臃肿,我平均每年都会重装一下系统, 因此需要配置免安装的环境,重装系统可以继续使用。 1、C/C++环境安装配置 主流都是用minGwin的gcc/g++,最近发现一个小熊猫C++编译器,更新更方便, 目前已经有gcc/g++ 11.02了,比一般的版本更新, 可
阅读全文
摘要:按照网上说的配置发现有报错,一开始一直在调试报错,调了半天一直有错误,最后忍不住直接运行,没想到成功了。。。 有些模块的报错不用管,应该是vs检查太严格或者出错了。 1、下载wxsqlite3(推荐4.5.1) 后面版本的加密功能好像有变动,如果要打开之前加密的数据库需要注意版本对应 可以到这里下载
阅读全文
摘要:最近在搞sqlite3项目,那个整合版的sqlite3.c有22w行,vs或者vscode打开都经常卡住,而且不是卡一会,会一直卡,随便改个东西又要重新解析一下。 主要还是整合版的源代码太长太复杂了。用editplus打开不卡,但是配色太朴素了,试了网上说的monokai主题设置也没有sublime
阅读全文
摘要:在vs里面写c会报各种奇怪的错误,那就用cpp吧,然后c里面的一些函数也会报错,包括最常用的sprintf: sprintf: This function or variable may be unsafe. Consider using sprintf_s 方法一(vs推荐的方法): 工程->属性
阅读全文
摘要:今天用老版的vs写C写到怀疑人生。。。 一个简单的for循环就报n个错误。。。 我愣是看了一行简单的代码看了好久,看到怀疑我不会写代码。。。 后来bing了一下才发现,原来 老版的vs不支持C99以后的很多新特性,其中变量定义都要放最上面,不能放下面,不然就报错。。。 我还是老实把文件名从.c改成.
阅读全文
摘要:这个要么是没有包含头文件,要么代码是要放到函数里面,不能放函数外面。
阅读全文
摘要:本文使用的是linux aarch64版librga.so(1.3.2),来自https://github.com/airockchip/librga 运行环境:rk3566 linux系统 编译环境:ubuntu20.04 gcc/g++9.4 工具链:gcc-buildroot-9.3.0-20
阅读全文
摘要:ubuntu是标准版,VMWare可以自动安装系统和VMTool; lubuntu是lightweight ubuntu,轻量化,但是界面太简陋,很多操作都不方便,VMWare不会自动安装系统和VMTool; xubuntu是使用xfce框架的ubuntu,也很轻量化,有开始菜单,最接近window
阅读全文
摘要:由于notepad++反华问题(一个开源的也bb政治),弃用它,用editplus。 写一些简单的脚本可以直接在editplus里面跑: 步骤: 工具-配置自定义工具组-改组名(可选)-添加工具-程序 1.C/C++: C/C++都可以用g++.exe编译运行,命令都用g++,这样二合一简单一点。
阅读全文
摘要:string本来在程序运行完会自动析构,但是在结束前调用 _CrtDumpMemoryLeaks()检查会有内存泄露,在结束后好像没法检查,可以手动析构释放内存。但是不建议使用,可能有其他bug string的手动析构: string str="abc"; str.~basic_string();
阅读全文
摘要:一、无法解析的外部符号 如果在vs里面调用opencv出现"无法解析的外部符号"问题,可能是没有导入lib,或者运行lib的平台版本不对, 1.导入lib:在项目-属性-链接器-附加库目录,添加opencv的lib目录,并在输入-附加依赖项里加入具体的lib名; 2.更改平台版本:默认使用win32
阅读全文
摘要:数组的指针和数组名其实是等价的,数组名可以使用下标,数组的指针也可以: #include <stdio.h> #include<stdlib.h> #include<string.h> int main(void){ char str[]="abc"; char *sp=str; int ints[
阅读全文
摘要:VC 版本_MSC_VERVS 版本MSVC toolset version VC6.0 1200 VS 6.0 VC7.0 1300 VS2002 VC7.1 1310 VS2003 VC8.0 1400 VS2005 80 VC9.0 1500 VS2008 90 VC10.0 1600 VS2
阅读全文