最近写程序遇到一个奇怪的问题,那就是,一个程序,调试是正确的,但是运行的时候就出不来正确的结果,又不知道出错在哪里?这个问题真是两个字“纠结”!
在vc中,调试用的是LIBCD.LIB,运行用的是LIBC.LIB,两者调用的动态链接库不同。
调试的时候,只能调试逻辑错误,笔者遇到的问题是在使用realloc函数的时候,大家都知道realloc 函数,但是用的人却不是很多,它是在原来的基础上重新开辟空间,但是新开辟的空间的首指针,指向的就不一定是原来的空间,
如:s = (char *) malloc(10 * sizeof(char)); //假设开辟后的地址为0000----0010
s = (char *)realloc(s,40 * sizeof(char)); //则此时的s 地址可能是0000-0040
//也可能是0020----0060
所以在对s进行操作的时候,就是在新的空间进行操作,和旧的空间就没有关系,此时如果这段代码在函数中出现,对s进行操作,则是对新地址进行操作,旧地址还保持着原来的字符,当跳出函数时候,操作对旧的没有任何改变,就会出现问题,但是调试的时候,确实一定会重新开辟成0000---0040这段地址
所以慎重指针,和动态开辟,还有就是可以在运行的时候打印出他们各自的地址值,方能发现错误!而我解决这个问题就是用二级指针,当对指针进行改变时候,那么二级指针的值也就改变了,这样就可以解决上诉的问题
分享到:
相关推荐
课程思政-C语言程序设计-指针基础
全国计算机二级:C语言之指针、数组和函数
10.1地址和指针的概念 10.2变量的指针和指向变量的 指针变量 10.3数组与指针 10.4字符串与指针 10.5指向函数的指针 10.6返回指针值的函数 10.7指针数组和指向指针的指针 10.8有关指针的数据类型和指针...
C语言指针详解--让你不再害怕指针,主要解答了C语言初学者对使用指针的疑问。
今天学习c语言指针之二级指针示例,还不错,大家一起看看吧。
十分详细讲述了C语言中的指针的用法 灵活使用C语言指针--深入理解C语言指针
经典描述C语言指针,更是深入理解指针的妙处!
C语言的灵魂-指针C语言的灵魂-指针
全国计算机等级考试-二级教程-C语言程序设计全国计算机等级考试-二级教程-C语言程序设计全国计算机等级考试-二级教程-C语言程序设计
文章对C语言程序设计中指针的定义、使用进行详细的介绍,初学者可以快速掌握指针,能够对指针的使用有个初步的了解。
C 语言具备了面向过程程序设计的基本要求,在诸多领域无可替代,也适合于构建程序设计基础。所以它是一门程序设计的公共基础课程,相信也是...文档介绍指针的高级应用的有关内容,《C语言程序设计 现代方法》配套讲义
C语言-指针-清晰明了的指针教程
分享一个关于C语言程序设计中学习难点-指针,讲解很详细,而且同通俗易懂,非常适合初学者以及刚入门的学者学习。
指针是C语言中的精髓,但也是难点。我这不是我第一次写关于C指针的文章了,只是因为指针对于C来说太重要,而且随着自己编程经历越多,对指针...可以帮大家正确理解C语言中的常量、变量、指针的指针变量之间的相互关系。
国家计算机二级C语言讲义.pdf
C语言的精髓-指针,多做训练才能避免泄露,看吧!
指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的...同时,指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要作到这些,指针也是不难掌握的。
c语言中指针是较为重要的知识点,掌握指针你会更上一层楼。
计算机二级-C语言-代码.zip
本文档是适合于基础学习C语言指针到深入学习的c语言指针的总结性文档,本人能力有限,如错误之处,请告知我。