C语言malloc函数的使用问题

pArr=(structStudent*)malloc(sizeof(structStudent));pArr不是保存了malloc函数所分配的内存空间中首字节的地址,那... pArr = (struct Student*)malloc(sizeof(struct Student));
pArr不是保存了malloc函数所分配的内存空间中首字节的地址,那么pArr的数据类型便是struct Student *类型
所以如果我写 f(pArr)
然后定义一个f函数 那么不应该这么写 void f(struct Student * p)
但为何却要发送f(&pArr)pArr不是本身便保存的地址么
而且如果这么写的话接受的时候不应该是
void f (struct Student ** p)了么
展开
 我来答
鲁步友卉2k
2012-12-01 · TA获得超过149个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:71.7万
展开全部
看上去你要写个分配空间的函数 f 。

1. 标识符 pArr 对应一个一般是4字节或8字节的指针变量。这个变量用于存储 struct Student * 类型的内存地址。
2. 函数调用 f(pArrr) 是将该变量存储的内容传递给 f ,也就是传递那个 struct Student * 类型的地址进去。但因标识符作用域的关系,f 是不知道这个指针变量的内存位置的,它操作的只是栈空间内的一个副本指针变量而已。在这种情况下,以正常手段 f 无法修改 pArr 这个指针变量的值。
3. 函数调用 f(&pArr) 是将该变量在内存中的地址传递给 f ,正是那个 struct Student ** 类型的地址值。f 有了这个地址,对这个地址中的数据进行操作,就可以达成访问或修改 pArr 这个指针变量的效果。
sssstar007
2012-12-01 · TA获得超过321个赞
知道小有建树答主
回答量:547
采纳率:0%
帮助的人:254万
展开全部
对头,楼主正解,不需要我们回答了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1153044d1
2012-12-01 · TA获得超过183个赞
知道小有建树答主
回答量:302
采纳率:100%
帮助的人:258万
展开全部
"但为何却要发送f(&pArr)"
这句话从何而来?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式