c编程在linux下才有意义
今天为了给顶嵌杯做准备又回到linux下开始c编程了。刚开始是练习写一个与矩阵变换有关的程序,为了节省时间有一个函数模块是直接用的以前在windows下编程时所使用的。结果在linux下编译完运行之后很快就崩溃了,由于调试水平不高弄了很久也不知到问题出在哪里。正在百思不得其解时忽然注意到(当然不是自己调试出来的)原来是自己在矩阵转置的时候没有修改这个矩阵对应的内存,于是就导致了内存访问异常。我晕了以前在windows下面这个函数模块经常被调用几十几百次都没提示什么,在这里一次就导致了程序的崩溃。不得不佩服linux的内存管理机制是多么的完善。
如果不是在linux下使用了这个模块还以为那个模块是对的呢。这太危险了,我想,虽然无论在哪里这类错误编译器是不会直接给出错误或警告的,但是在垃圾的windows下运行次数少的时候程序不会有内存访问异常的提示,如果这是大型的软件的其中一个模块一旦运行时间长了就会导致内存耗尽以至死机的现象出现。。。 而在linux下就不会出现类似的问题,因为一旦有内存访问异常(即使只有一个字节)在运行的时候也会给出出错标志,这对于锻炼人的动态内存使用能力是很有用的,而且在嵌入式(内存资源没有pc上那么丰富)编程时还会避免很多的问题出现。
相关文档:
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
Linux 释放内存方法
先看看内存使用状况
[root@node1 ~]# free -m
total used free shared buffers cached
Mem: 8004 6557 1446 0 163 5630
-/+ buffers/cache: 763 7240
Swap: 1983 0 1983
把内存里的数据暂时写到硬盘里
[root@node1 ~]# sync
修改 /proc/sys/vm/drop_caches文件
[root@node1 ~]# echo 3 > ......
参考资料:http://www.blogjava.net/lijun_li/archive/2009/04/02/263491.html
http://www.chinalinuxpub.com/read.php?wid=1080
硬盘挂载操作工作步骤:
1、先查看目前机器上有几块硬盘,查看命令有两 ......
题目:输入三个字符串a,b和c,将a中b的第一次出现替换为c。
代码:
#include <iostream.h>
#include <string.h>
/*字符串替换,第一个参数为原串,第二个参数为要匹配的子串
第三个参数为要替换的第一个子串中包含第二个子串的部分*/
char *strReplace(char *str1,char *str2,char *str3);
void main() ......
转自: http://hi.baidu.com/elliott_hdu/blog/item/411421dd5bf8dfe977c63876.html
1.下列程序的输出结果为:(B)
#include<iostream.h>
void main()
{
char* a[ ] = { "hello", "the", "world"};
char** pa = a;
&nbs ......