易截截图软件、单文件、免安装、纯绿色、仅160KB

c编程在linux下才有意义

 今天为了给顶嵌杯做准备又回到linux下开始c编程了。刚开始是练习写一个与矩阵变换有关的程序,为了节省时间有一个函数模块是直接用的以前在windows下编程时所使用的。结果在linux下编译完运行之后很快就崩溃了,由于调试水平不高弄了很久也不知到问题出在哪里。正在百思不得其解时忽然注意到(当然不是自己调试出来的)原来是自己在矩阵转置的时候没有修改这个矩阵对应的内存,于是就导致了内存访问异常。我晕了以前在windows下面这个函数模块经常被调用几十几百次都没提示什么,在这里一次就导致了程序的崩溃。不得不佩服linux的内存管理机制是多么的完善。
  如果不是在linux下使用了这个模块还以为那个模块是对的呢。这太危险了,我想,虽然无论在哪里这类错误编译器是不会直接给出错误或警告的,但是在垃圾的windows下运行次数少的时候程序不会有内存访问异常的提示,如果这是大型的软件的其中一个模块一旦运行时间长了就会导致内存耗尽以至死机的现象出现。。。   而在linux下就不会出现类似的问题,因为一旦有内存访问异常(即使只有一个字节)在运行的时候也会给出出错标志,这对于锻炼人的动态内存使用能力是很有用的,而且在嵌入式(内存资源没有pc上那么丰富)编程时还会避免很多的问题出现。


相关文档:

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

linux c++连接mysql示例

 
 编译和连接程序
  MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项.
  1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项.
  $ mysql_config --libs
  2. --cflags 选项 - 使用必要的include文件的选项等等.
......

C标准库函数

函数名: abort
功  能: 异常终止一个进程
用  法: void abort(void);
程序例:
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
  printf("Calling abort()\n");
  abort();
  return 0; /* This is never reached */
}
 
 
......

C/C++字符串匹配和替换

题目:输入三个字符串a,b和c,将a中b的第一次出现替换为c。
代码:
#include <iostream.h>
#include <string.h>
/*字符串替换,第一个参数为原串,第二个参数为要匹配的子串
第三个参数为要替换的第一个子串中包含第二个子串的部分*/
char *strReplace(char *str1,char *str2,char *str3);
void main() ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号