
C/C++
我来自江南
这个作者很懒,什么都没留下…
展开
-
指针初始化的小问题
在c++程序里,如果声明了一个指针变量,并没有给它赋值,它是不会默认等于NULL的,如 usigned char *data;if(data==null){data=(usigned char )malloc(...);}上面是不会进入if分支原创 2011-09-25 11:22:05 · 598 阅读 · 0 评论 -
数组与指针初始化问题
1.const char *ciphertext = {'1','2','3'};couterror C2440: 'initializing' : cannot convert from 'char' to 'const char *'2.改正如下const char ciphertext[] = {'1','2','3'};cout原创 2012-03-11 14:17:51 · 588 阅读 · 0 评论 -
c++ map 函数
http://apps.hi.baidu.com/share/detail/16243110 c++ Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(转载 2011-10-17 23:51:51 · 1212 阅读 · 0 评论 -
装CGAL与解决"QWidget: Must construct a QApplication before a QPaintDevice". 问题
http://www.qtcn.org/bbs/apps.php?q=diary&uid=111650&a=detail&did=52装CGAL与解决"QWidget: Must construct a QApplication before a QPaintDevice". 问题2011-06-22 17:37 一、安装CGAL需要boost,qt的库,我是在wi转载 2012-03-29 17:38:59 · 2654 阅读 · 0 评论 -
C++箴言:理解typename的两个含义
http://dev.yesky.com/13/2221013.shtml2005-12-05 09:14作者:fatalerror99出处:BLOG责任编辑:方舟 问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? template class Widget; // use转载 2012-03-31 10:26:49 · 451 阅读 · 0 评论 -
char*、new和delete联合使用的问题
一个测试例子如下: char *strc = new char[5]; strc[0] = '\0'; strcat(strc,"12345"); delete[] strc;看似没问题,字符串strc分配空间正确并且将"12345”连接赋值给它。但是问题出现在这里:delete[] strc;为什么呢?因为strc用new分配空间时在堆中有5个连续的字节,在将"1原创 2012-03-22 17:43:03 · 10261 阅读 · 0 评论 -
在unicode下获取文件路径
CString cdirectory ; GetCurrentDirectory(MAX_PATH,cdirectory.GetBuffer(MAX_PATH)); m_curFilePath = (char*)cdirectory.GetBuffer(); cdirectory.ReleaseBuffer();原创 2012-05-23 15:16:29 · 2192 阅读 · 0 评论 -
vc++2008中如何断点调试异常数据-1.#IND
比如我声明定义了一个double变量double d = 1.0;但是后续程序对d进行了误操作导致d是无效数字。这时候可以使用下面的代码加上断点来定位出错位置if (_isnan(d) || _isnan(d) ||_isnan(d)){cout}原创 2013-03-19 14:11:22 · 1401 阅读 · 0 评论 -
父类子类有同名变量时候的初始化
下面的结果输出为class A{public: int a; int b;public: A(){cout <<a<<endl; a = 100; b = 200;} ~A(){}; void fun(){cout<<a<<endl;}};class C{public: int a;public: C(){cout <<a<<endl; a=300;} ~C原创 2014-01-04 17:12:31 · 981 阅读 · 0 评论 -
++j, j++除了运算级有区别之外,还....
先贴上代码,看注释理解吧 int j1 = 0; int &k1 = j1++; //编译报错:error C2440: 'initializing' : cannot convert from 'int' to 'int &',必须改成int &k1 = j1 ++j1; int j2 = 0; int &k2 = ++j2; //编译正常无措 j2++;原创 2015-11-14 10:59:40 · 1078 阅读 · 0 评论 -
简约ui版Ubuntu14.04上安装atom
sudo add-apt-repository ppa:webupd8team/atom sudo apt-get update sudo apt-get install atom安装后启动如果出现:“XInputExtension”....之类如下1. cd到atom安装目录,我的是/opt/atom/2. cp /usr/lib/x86_64_linux-gnu/libxcb...原创 2019-01-18 10:43:10 · 276 阅读 · 0 评论 -
malloc动态分配内存,超字节赋值没有出错
1. 看段代码: char *a=(char*)malloc(3); a[0]='1'; a[1]='2'; a[2]='3'; a[3]='4'; //这里开始超字节赋值 a[4]='5'; a[5]='\0'; cout a=(char*)realloc(a,5); //对a重新分配,变为5个字节,原先原创 2012-02-26 15:01:30 · 1622 阅读 · 0 评论 -
const char*的运行时赋值错误
const char*的限制,以下第三句会出现运行时出错: char *c="1234"; const char *d=c; c[1]='5';原创 2012-02-26 11:03:46 · 836 阅读 · 0 评论 -
在非unicode下取得文件路径序列
inline void getDirectoryCur(char* &curDirectory){ LPSTR cdirectory=new CHAR[MAX_PATH]; GetCurrentDirectory(MAX_PATH,cdirectory); curDirectory = (char*)cdirectory;}原创 2012-02-26 13:09:34 · 687 阅读 · 0 评论 -
关于c++ map问题
1.map的关键不能修改,但是关键字对应的映射可以被修改。如下map::iterator itr;……(省略)//itr->first="100_2"; 本句不能编译通过,因为修改的是关键字itr->second=150; //本句可以编译运行原创 2011-10-18 01:04:21 · 540 阅读 · 0 评论 -
C语言常用数学函数及其用法
http://old.blog.edu.cn/user5/282721/archives/2008/2098559.shtml 三角函数:(所有参数必须为弧度) 1.acos 函数申明:acos (double x); 用途:转载 2011-10-18 18:12:44 · 12198 阅读 · 0 评论 -
C/C++时间函数使用方法
http://c.chinaitlab.com/c/basic/200907/789301.html1. 时间的定义 C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法。 通过学习许多C/C++库,你可以有很多操作、使用时转载 2011-11-20 23:54:18 · 605 阅读 · 0 评论 -
C/C++中日期和时间
本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。 关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.概转载 2012-02-10 13:44:13 · 516 阅读 · 0 评论 -
VS2010中安装配置Parallel Nsight 2.0
http://cuda.it168.com/a2011/0926/1251/000001251475.shtml 【IT168 技术】Nvidia公司推出了 Parallel Nsight 2.0 RC http://parallelnsight.nvidia.com/ 完美支持VS2010和VS2008SP1,支持CUDA 4.0。 让我们省去了配置环境参数的烦转载 2012-02-11 10:34:11 · 1509 阅读 · 0 评论 -
C++重载函数的一个误导
首先用typedef定义两个float[]数组类型typedef float Math3DVector2f[2];typedef float Math3DVector3f[3]; 再分别用上面两个类型变量重载一个函数NormalizeVectorfvoid NormalizeVectorf( Math3DVector2f vectorf ){ //----}原创 2012-02-22 19:26:34 · 474 阅读 · 0 评论 -
vector小点
1. 注意 不要混用这两种习惯用法, 例如,下面的定义 vector ivec; 定义了一个空vector 再写这样的语句 ivec[ 0 ] = 1024; 就是错误的 ,因为 ivec 还没有第一个元素,我们只能索引 vector 中已经存在的元素 size()操作返回 vector 包含的元素的个数 。2. 类似地 当我们用一个给定的大小定义一个 vector 时转载 2012-02-24 16:52:28 · 456 阅读 · 0 评论 -
安装好cuda相关工具后发现原来基于mfc平台的opengl程序出现闪烁,最终解决
修改前,会闪烁,一开始以为是窗体view的OnEraseBkgnd函数无法禁止造成的,其实是像素格式的参数设置问题修改前,会闪烁的设置:// static PIXELFORMATDESCRIPTOR pfd={// sizeof(PIXELFORMATDESCRIPTOR),// 1,// PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL原创 2012-02-17 18:46:31 · 1371 阅读 · 1 评论 -
XP(win7也可参考)下 vs2008 +cuda4.0配置
原文地址:http://cudabbs.it168.com/thread-2797-1-1.html 以下是原文,本人是在win7+cuda(工具版本为4.1)的条件下经测试还有些需要改,即原文中红色部分标注 原文:在前人的基础上,我今天安装了cuda4.0,总结一下。首先下载三个软件:devdriver_4.0_winxp_32_270.81_general.ex转载 2012-02-09 13:13:05 · 1025 阅读 · 0 评论 -
用malloc给void*分配内存,并将其转为char*的小体会
1.先看一个对比结果下面输出a的长度为1: char* a=(char*)malloc(6); a[1]='\0'; cout 如果没有给a指定结束符'\0',则输出的a长度为24,超过malloc所分配字节数的大小6,如下所示,把中间行注释: char* a=(char*)malloc(6); //a[1]='\0'; cout 2.看看malloc原创 2012-02-25 20:55:40 · 6096 阅读 · 0 评论 -
td::system_error' what(): Enable multithreading to use std::thread: Operation not permitted
ubuntu14.04上遇到此问题,编译选项加:-pthread -std=c++11 -Wl,--no-as-needed亲测有效,其他的说法如只加-pthread -std=c++11没效果原创 2019-07-26 15:49:45 · 1088 阅读 · 0 评论