了解了内存空间,接下来我们就一起看一下指针自身用法的一些题目,先来看这样一道题目:
![09fde20aeeb62ac0d5dc22843ef8d49f.png](https://i-blog.csdnimg.cn/blog_migrate/edf4eea0f387049f11ede1b1b84ffdcc.jpeg)
C语言面试题指针篇第3节,不理解内存空间的程序员,是不合格的
分析下面代码:
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
void getmemory( char *p)
p=( char *) malloc(100);
strcpy(p,"hello world");
int main( void)
char *str=NULL;
getmemory(str);
printf("%s ",str);
free(str);
return 0;
答案:程序崩溃, getmemory 中的 malloc 不不能返回动态内存, free()对 str 操作很危险,程序会崩溃,出现段错误这道题目初一看跟我们前面的一道题目非常相像,但是却又截然不同。
在该程序中, getmemory 中 p 是形参,所谓形参在运行中会产生一个临时变量,只会把外界传入的参数的值接收到,所有的改变不会影响外界的实际参数。 ge