C
Anyanyamy
这个作者很懒,什么都没留下…
展开
-
mfc dll创建及基本概念
(实践)dll创建及基本概念1.动态链接库的概念 DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件,是一种二进制文件。 动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。 DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内原创 2014-06-10 20:31:59 · 576 阅读 · 0 评论 -
C socket 发送HTTP请求
HTTP请求头部样例:GET http://www.baidu.com/ HTTP/1.1Accept: html/textHost: 220.181.6.175:80Connection: Close 这是一个请求百度页面的头部。属性和值的命名中间用:和空格隔开,结尾使用\r\n,头部结束使用\r\n\r\nGET表示采用GET方法,当然我们常见的还有POST等其转载 2015-10-20 23:46:15 · 9167 阅读 · 2 评论 -
VS2013 fopen_s 用法
参考:http://bbs.csdn.net/topics/190162053//一个正确使用的例子// crt_fopen_s.c// This program opens two files. It uses// fclose to close the first file and// _fcloseall to close all remaining file原创 2015-10-04 22:37:38 · 4931 阅读 · 0 评论 -
C语言中的多维数组
如果要给二维数组(m*n)分配空间,代码可以写成下面:char **a, i;// 先分配m个指针单元,注意是指针单元// 所以每个单元的大小是sizeof(char *)a = (char **) malloc(m * sizeof(char * ));// 再分配n个字符单元,// 上面的m个指针单元指向这n个字符单元首地址for(i = 0; i转载 2015-10-06 23:48:18 · 885 阅读 · 0 评论 -
Windows 8 64bit + VS2013/Dev C++/CodeBlocks 调用 GSL1.8 (通过GnuWin32)
今天找了一天各种C语言的矩阵计算库,尝试了直接调用matlab,参见前一篇文章。最终还是决定用C语言调库GSL来完成矩阵计算。0.环境Windows 8 64 bit VS2013最开始想要DEV C++ 来调用,参考了以下两个网站,没成功。https://jpjitendrapal.wordpress.com/2012/02/29/configure-gs原创 2015-10-04 09:22:42 · 2410 阅读 · 2 评论 -
windows 8.1 64-bit 配置并调用libcurl
libcurl在devc++中的配置1、因為初期開發會在windows上進行,所以函式庫皆以windows上的binary為目標。2、從http://curl.haxx.se/download.html選擇curl Download Wizard!:Select Type of Package:libcurlSelect Operating System:Win原创 2015-11-08 23:31:56 · 677 阅读 · 0 评论 -
C --- 变量内存分配
今晚看了人家写的一个关于C语言内存分配的帖子,发现真是自己想找的,于是乎就收藏了。。。先看一下两段代码:char* toStr() { char *s = "abcdefghijkl"; return s; } int main() { cout return 0; } 和转载 2015-10-23 21:27:45 · 402 阅读 · 0 评论 -
C SSDP 发现设备实现
本质上和UDP发送数据一样,只是发送的字符串是指定格式: //the broadcast request, ie "Any upnp devices out there?" char *request = "M-SEARCH * HTTP/1.1\r\nHOST:239.255.255.250:1900\r\nMAN:\"ssdp:discover\"\r\nST:ssdp:all\r\nM原创 2015-10-27 00:54:25 · 2361 阅读 · 0 评论 -
C malloc free 函数实现
让我们编写一个malloc函数,看看它在既有程序中如何工作!本教程假定你了解指针,知道C语言中 *ptr 间接引用一个指针, ptr->foo 表示 (*ptr).foo,malloc用于内存动态分配,并且熟悉链表的概念。如果想要学习本教程但你不了解C,请告知我哪些部分需要更详细的论述。如果你想要马上浏览所有代码,可以再这里查看。该测试代码由Andrew Roth提供,他的github转载 2015-10-27 22:34:09 · 1112 阅读 · 0 评论 -
C malloc free 调试 --- 解决堆被破坏错误
首先我们可以在程序中加入如下代码#ifdef __MALLOC__static void* __FUN_MALLOC__(const char *file, const int line, const char *function, const int size){ void *p=malloc(size); fprintf(stdout," [%s:%d:原创 2015-10-27 22:46:50 · 1999 阅读 · 0 评论 -
C split 截取特定字符串功能实现
char* subString (const char* input, int offset, int len, char* dest) { if(input == NULL || dest == NULL || offset < 0 || len < 0) return EMPTY_STR; int input_len = strlen (input); if (offset + l原创 2015-10-27 00:56:47 · 564 阅读 · 0 评论 -
C 发送http request
//remember free responsechar* sendTcpRequest(char* request, int port, char* addr) { if(request == NULL) return EMPTY_STR; WSADATA wsa; if(WSAStartup(MAKEWORD(2,2), &wsa) != 0) { return EMPTY_原创 2015-10-27 00:58:34 · 1651 阅读 · 0 评论 -
gcc warning #pragma comment 解决
当我们在程序中使用:#pragma comment(lib, "ddraw.lib")gcc可能会出现warning, 这时候可以Project -> Build OptionsTab "Linker Settings"Try adding the Libraries under "Link Libraries"原创 2015-10-27 00:12:56 · 6595 阅读 · 0 评论 -
C语言字符格式化输出总结
符号属性长度属性基本型所占位数取值范围输入符举例输出符举例----char8-2^7 ~ 2^7-1%c%c、%d、%usigned--char8-2^7 ~ 2^转载 2015-10-20 23:23:01 · 1214 阅读 · 0 评论 -
C程序调用matlab (Win8 64 bit + VS 2013 + Matlab R2014a)
Visual Studio和MATLAB混合编程,有两种方法: 1 MATLAB调用C程序 用MATLAB的mex命令调用VS或其他编译器,将以一定方式编写出的C文件编译成.mexw32(针对win32)或者.mexw64(针对win64),然后MATLAB就可以用调用动态链接库的方式,调用C程序。这一过程中,只需要在安装好编译器的前提下,执行:mex -se转载 2015-10-04 05:23:18 · 4326 阅读 · 0 评论 -
数据结构知识框架图
数据结构描述:#define MAX 50typedef int ElemType;//线性表:顺序 typedef struct{ //表中数据个数 int count; ElemType data[MAX];}ArrayList;//线性表:链式,带头节点 typedef struct Node{ ElemType data; struct Node* ne原创 2015-03-29 20:33:27 · 2684 阅读 · 0 评论 -
算法分析与设计复习-回溯法和分支限界法
// 回溯法 and 分支限界法 : 解空间搜索技术 #include //三着色问题:每次只产生一个子节点,深度优先;不需要存储整棵树,只需要存储根到当前活动节点的路径。int[] 3COLORREC(int n){ int c[n]; for(int k = 1; k <= n; k ++) c[k] = 0; bool flag = false; graphcolor(原创 2015-03-25 19:00:52 · 968 阅读 · 0 评论 -
写一个程序,分析一个文本文件(英文文章)中各个单词出现的频率,并且把频率最高的10词打印出来
写一个程序,分析一个文本文件(英文文章)中各个单词出现的频率,并且把频率最高的10词打印出来 在看到这个问题的时候,我决定用c语言来进行编写,并且将这个问题进行了分解. 原本想的是记下来每个单词出现的频率后再排序,这样会用到O(N*log N),后来才发现,想复杂了,直接保存频率最高的几个单词,遍历的同时替换就可以了。。降到了O(N)。 1.首先是要利转载 2015-04-03 09:46:21 · 25629 阅读 · 19 评论 -
浅谈缓冲区溢出(整理自《深入理解计算机系统》)
一、综述在x86体系结构下, C++/C对数组引用不进行任何边界检查,而且函数调用过程中局部变量和状态信息(例如寄存器值和返回指针)都存放在栈中。当这两种情况结合到一起的时候,就有可能导致严重的程序错误,一个对越界的数组元素的写操作会破坏存储在栈中的状态信息,而当程序使用这个被破坏的状态,并试图重新加载寄存器或执行ret指令(返回调用函数)时,就会产生严重的错误。二、C++/C中的数组转载 2015-04-03 09:21:45 · 1058 阅读 · 0 评论 -
五大算法比较-分治、动态规划、回溯、分支限界、贪心算法
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的问题转载 2015-03-25 11:36:30 · 4084 阅读 · 0 评论 -
算法分析与设计复习-贪心算法描述
其中关于图的部分与数据结构类似,我就没进行代码实现了,直接写描述。//贪心算法和图遍历//算法由简单的迭代过程组成,在维持可行性的前提下选择能产生最大利益的项。 //倾向于提供初始解,但是它的每一步是建立在局部最优解的基础之上,工作少且基于少量信息,速度快。//重点:分数背包问题、最短路径问题(DJ)、最小生成树(普里姆、克鲁斯卡尔)、文件压缩(哈夫曼树)#include原创 2015-03-25 16:36:43 · 468 阅读 · 0 评论 -
算法设计与分析复习-归纳法代码
1.基本概念算法是为了完成某任务的由有限指令组成的过程。5个特性:可行性、明确性、有限性、有输入、有输出5个衡量标准:正确性、可使用性、健壮性、可读性、有效率2.时间复杂度三种:上界、下界、渐进f(n)= O(g(n)) lim(f/g) != 无穷大计算复杂度的方法:根据循环、根据基本运算的执行次数、根据递推关系式//归纳法#incl原创 2015-03-25 09:25:03 · 639 阅读 · 0 评论 -
算法设计与分析复习-分治法算法描述
//分治:划分、解子问题、组合 //每个递归算法均可以转换为迭代算法 #include #include //寻找最大最小元素,最大比较次数 3*N/2 - 2 minmax(low,high)if(high - low = 1) if(arr[low] < arr[high]) return (arr[low],arr[high]) else return (arr[原创 2015-03-25 10:34:25 · 570 阅读 · 0 评论 -
数据结构复习-数组、广义表、递归、哈夫曼数/并查集
第5章 数组和广义表数组定义:存储在连续内存单元的线性表,是一种随机存储结构。多维数组可以看作每个数据元素都是一个一维数组。C/C++/PASCAL/BASIC等语言是行序存储,FORTRAN等是列序存储。行序存储的数组a[m][n]: loc(a[i][j]) = loc(a[0][0]) + (i*n + j) * k --- k是每个元素所占的存储单元特殊矩阵的压缩存储:对原创 2015-03-23 19:56:49 · 742 阅读 · 0 评论 -
算法设计与分析复习-动态规划例子代码
需要注意的一点:1.找出递推关系式,用空间存储中间结果,递推求解。2.算法的描述中数组从1开始,实际上却是0开始,我处理的方式是不用0下标的元素,置为-1.3.如有错误,欢迎指出~~//动态规划 VS 分治 //Common: 均是分解问题,组合子问题求解//Different:/*1.分治:自上而下 规划:自下而上 2.分治:不能避免重复计算、应尽量划分成单独原创 2015-03-25 15:38:51 · 516 阅读 · 0 评论 -
数据结构复习-图、查找、排序
#include #include //图的基本概念://有向图:入度,出度//无向图:度//图中所有顶点的度之和=边数*2//完全图:每两个顶点间都有一条边,//路径:从一个顶点到另一个顶点的顶点序列; 路径长度:路径上经过的边的数目//无向图:任意两个顶点间都存在边,极大连通子图=连通分量 //无向图:任意两个顶点间都存在边,极大强连通图=强连通分量//关节点:在删除该节原创 2015-03-24 08:45:58 · 612 阅读 · 0 评论 -
C语言读写串口例子程序
#include "SerialPort.h"HANDLE hComm;//SYSTEMTIME etime;bool openPort(TCHAR *gszPort) { printf("try to open the port %s \n", gszPort); hComm = CreateFile(gszPort, ...原创 2015-10-17 22:21:43 · 15283 阅读 · 4 评论 -
GSL是一个C语言的科学计算库,本文是对其进行了封装以更方便使用
#ifndef GSLMATRIXS_H#define GSLMATRIXS_H#include <stdio.h>#include <math.h>#include <gsl/gsl_matrix.h>#include <gsl/gsl_linalg.h>#include <gsl/gsl_blas.h>#includ...原创 2015-10-17 22:23:44 · 1760 阅读 · 0 评论 -
数据结构复习-基础、线性表、栈、队列、串
数据结构复习笔记作者: 收集于网络 数据就是指能够被计算机识别、存储和加工处理的信息的载体。 数据元素是数据的基本单位,有时一个数据元素可以由若干个数据项组成。数据项是具有独立含义的最小标识单位。如整数这个集合中,10这个数就可称是一个数据元素.又比如在一个数据库(关系式数据库)中,一个记录可称为一个数据元素,而这个元素中的某一字段就是一个数据项。 数转载 2015-03-15 10:17:32 · 1614 阅读 · 1 评论