第一个题
指针str指向NULL 进行函数的调用把str的参数NULL传给了P 所以P的内容为NULL(*p=NULL)然后malloc申请了空间并把申请空间的首地址付给了p 所以p里面的内容变成了开辟空间的首地址。p和str并没有什么关系str没有空间被赋值的换会是段错误
第二个题
指针str为NULL 然后进行系统调用数组p=helloworld空间在栈区 所以让p的地址被返回被str接受时 p数组所管理的空间就被释放了 里面的内容已经没有了 再用str去访问的话会出现段错误。
第三个题
指针str=null 然后进行系统调用参数传的时str的地址和数字100 p是二级指针接受的是一级指针的地址 所以p=&str p里面的内容就是str的地址(p里面是一个具体的地址)
*p=NULL malloc申请的空间放到p里面所以*p里面就是开辟空间的首地址 所以str里面也会变成开辟空间的首地址。
第四个题
Free之后没有把str=null 就会出现野指针在程序中乱指 可能指出其他的空间也可能没有指到其他空间 不知道会打印出什么 解决野指针的方法就是在free之后把指针赋值一个空。
野指针的梗 指单身狗。