随笔分类 -  ASM-指针

摘要:restrict是C99标准中新添加的关键字,对于从C89标准开始起步学习C语言的同学来说(包括我),第一次看到restrict还是相当陌生的。Wikipedia给出的解释如下: In the C programming language, as of the C99 standard, restr 阅读全文
posted @ 2018-09-02 20:16 findumars 阅读(471) 评论(0) 推荐(0) 编辑
摘要:C/C++中near和far的区别 关键字near和far受目标计算机体系结构的影响。目前编程中使用不多。 near关键字创建一个指向可寻址内存低端部分的目标指针。这些指针占用内存的单一字节,并且他们能够指向的内存单元被限制到256个位置,通常是在0x0000~0x00ff范围中。 int near 阅读全文
posted @ 2017-12-07 22:43 findumars 阅读(1047) 评论(0) 推荐(0) 编辑
摘要:NULL指针区域0x00000000-0x0000FFFF:65535字节 这个区域的作用是用来帮助程序员发现内存分配失败后未检查就使用的错误。比如使用malloc分配内存失败,返回NULL,而又未做检查直接使用,如例子:就会产生内存非法访问的错误,提示程序员int *piNum = (int*)m 阅读全文
posted @ 2017-05-22 18:11 findumars 阅读(779) 评论(0) 推荐(0) 编辑
摘要:平时都用的是char数组,基本忘记了char*数组和char**数组该怎么用了 char s1[10]; s1[0] s1[1]等都是char s1是char*,等同于&s1[0] char*s2[10]; s2[0] s2[1]等都是char* *s2[0] *s2[1]等都是char,是s2[0 阅读全文
posted @ 2017-02-18 01:03 findumars 阅读(3709) 评论(0) 推荐(0) 编辑
摘要:在使用 C 语言时,您是否对花时间调试指针和内存泄漏问题感到厌倦?如果是这样,那么本文就适合您。您将了解可能导致内存破坏的指针操作类型,您还将研究一些场景,了解要在使用动态内存分配时考虑什么问题。 引言 对于任何使用 C 语言的人,如果问他们 C 语言的最大烦恼是什么,其中许多人可能会回答说是指针和 阅读全文
posted @ 2016-04-05 18:37 findumars 阅读(591) 评论(0) 推荐(0) 编辑
摘要:指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着C/C++项目的开发,而身 阅读全文
posted @ 2016-04-05 18:15 findumars 阅读(294) 评论(0) 推荐(0) 编辑
摘要:第一篇 变量的内存实质 一.先来理解C语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质,所以我就从“变量”这个东西开始讲起吧! 先来理解理解内存空间吧!请看下图: 内存地址→ 6 7 8 9 10 11 12 13 ··· | | | | | | | | ··· 如图所示,内存 阅读全文
posted @ 2016-04-05 17:30 findumars 阅读(750) 评论(0) 推荐(0) 编辑
摘要:Big-endian 的内存顺序和数字的书写顺序是一致的,方便阅读理解。Little-endian 在变量指针转换的时候地址保持不变,比如 int64* 转到 int32*各有利弊,统一就好,目前看来是 little-endian成为主流了。-----------------------------... 阅读全文
posted @ 2015-06-03 18:14 findumars 阅读(464) 评论(0) 推荐(0) 编辑
摘要:有空自己也写一个学习笔记,先把参考文章记下了:http://www.cnblogs.com/aguncn/archive/2012/11/14/2769989.htmlhttp://www.cnblogs.com/aguncn/archive/2012/11/14/2769814.htmlhttp:... 阅读全文
posted @ 2014-11-27 17:57 findumars 阅读(12558) 评论(0) 推荐(1) 编辑
摘要:Java的Reference感觉很象C++的指针,但是区别是本质的他们相同之处在于都是含有一个地址,但是在Java中你无法对这个地址进行任何数学运算,并且这个地址你不知道,是Java Runtime分配给你的,它随时还要调整这个地址(After GC,Memory要Compact,这时候一个Obje... 阅读全文
posted @ 2014-11-18 21:19 findumars 阅读(800) 评论(0) 推荐(0) 编辑
摘要:记下以后所有碰到使用数组名称时候的是是非非:int main(int argc, char* argv[]){ char x[3]="abc"; // 编译错误 char a[3]={'a','b','c'}; char b[3]; b=a; // 常指针不能赋值 re... 阅读全文
posted @ 2014-05-23 03:37 findumars 阅读(378) 评论(0) 推荐(0) 编辑
摘要:探索C++的底层机制在看这篇文章之前,请你先要明白一点:那就是c++为我们所提供的各种存取控制仅仅是在编译阶段给我们的限制,也就是说是编译器确保了你在完成任务之前的正确行为,如果你的行为不正确,那么你休想构造出任何可执行程序来。但如果真正到了产生可执行代码阶段,无论是c,c++,还是pascal,大... 阅读全文
posted @ 2014-05-05 23:26 findumars 阅读(773) 评论(0) 推荐(0) 编辑
摘要:// Listing 8.9 - Demonstrates a stray pointer typedef unsigned short int USHORT;#include int main(){ USHORT * pInt = new USHORT; // 声明第一个指针,分配了一块... 阅读全文
posted @ 2014-04-28 21:52 findumars 阅读(612) 评论(0) 推荐(0) 编辑
摘要:指针参数是如何传递内存的?如果函数的参数是一个指针,不要指望用该指针去申请动态内存。如下示例中,Test函数的语句GetMemory(str, 100)并没有使str获得期望的内存,str依旧是NULL,为什么?void GetMemory(char *p, int num){ p = (char ... 阅读全文
posted @ 2014-02-03 17:03 findumars 阅读(2860) 评论(0) 推荐(1) 编辑
摘要:int* A = (int*)malloc(sizeof(int)*s); A[0]=11; A[1]=22; printf("A = %d %d\n", A[0], A[1]); // the same reason: s_fm_solution_t** fm_sol; fm_sol[inde... 阅读全文
posted @ 2012-05-11 17:47 findumars 阅读(188) 评论(0) 推荐(0) 编辑
摘要:将指针作为函数传递时候的情况:如果将外部指针p1传递给函数参数的时候,实际上生成了另一个局部指针p2,p1与p2自身的地址不同,但是p1与p2指向同一个内存地址和对象。此时如果 p2 = new int(); 的时候,p2指向了另一个对象。但p1却没有受到影响。所以如果想让p1也受影响,就必须使用指... 阅读全文
posted @ 2012-04-05 19:42 findumars 阅读(266) 评论(0) 推荐(0) 编辑
摘要:在看完了《让你不再害怕指针.pdf》这本29页的书以后,感觉自己对指针的各种使用方法都会了(指针表达式那一块没仔细看,因为平时用不到这么复杂的情况)。但是忽然想起来,以前看MSDN的时候碰到双重指针就不理解,然而这本书却没有细讲,于是又搜了一些网上关于指针的文章看,竟然发现有些内容还是不太懂。于是忽... 阅读全文
posted @ 2011-10-21 05:38 findumars 阅读(3954) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示