| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2462 人关注过本帖, 1 人收藏
标题:关于动态内存分配使用时候释放的一些疑问
取消只看楼主 加入收藏
q215236213
Rank: 4
等 级:业余侠客
威 望:1
帖 子:148
专家分:276
注 册:2012-7-24
收藏
得分:0 
int i = 3;

int * p = (int*)malloc(sizeof(int));
* p = 3 ;
这2种,存储的值,都是一样的,只是一个是静态 ,一个是动态 ?
2012-07-31 16:35
q215236213
Rank: 4
等 级:业余侠客
威 望:1
帖 子:148
专家分:276
注 册:2012-7-24
收藏
得分:0 
int * p = (int *)malloc(sizeof(int));与 int * p ; p = (int *)malloc(sizeof(int));
这两个表达式的意思不一样 ??
2012-07-31 17:28
q215236213
Rank: 4
等 级:业余侠客
威 望:1
帖 子:148
专家分:276
注 册:2012-7-24
收藏
得分:0 
#include <stdio.h>
#include <malloc.h>
void f(int *);
int main(void)
{
    int i = 3 ;
    f(&i);
    printf("i = %d\n", i);
    return 0;
}

void f(int * p = (int *)malloc(sizeof(int)))
{
    * p = 8 ;
}

/*
void f(int * p)
{
    p = (int *)malloc(sizeof(int));
    *p = 8 ;
}
*/
为什么蓝色部分这样写可以改写i的值,而红色这样写 却不能改写 i 的值呢??
int * p = (int *)malloc(sizeof(int));与 int * p ; p = (int *)malloc(sizeof(int));
这两个是不是有什么区别??
2012-08-01 10:03
q215236213
Rank: 4
等 级:业余侠客
威 望:1
帖 子:148
专家分:276
注 册:2012-7-24
收藏
得分:0 
也就是说当我  p = (int *)malloc(sizeof(int));
做这个操作的时候,p所指向的地址已经不再是i的地址了,而是指向一个通过malloc函数分配的那个空间的 地址了  ,是这样吗?
2012-08-01 11:21
快速回复:关于动态内存分配使用时候释放的一些疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016609 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved