社区
C语言
帖子详情
一个基础问题
wabcw
2004-03-30 12:31:07
下面这两句有什么区别:
int *p;
int a =10;
p=&a;
int *p = (int *)malloc(2);
*p=10;
我想问的是:第一种没有为指针分配地址,第二种为指针分配地址。
这两种方式的效果是一样的,单有什么区别,讲解越详细越好。
...全文
81
4
打赏
收藏
一个基础问题
下面这两句有什么区别: int *p; int a =10; p=&a; int *p = (int *)malloc(2); *p=10; 我想问的是:第一种没有为指针分配地址,第二种为指针分配地址。 这两种方式的效果是一样的,单有什么区别,讲解越详细越好。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Wenxy1
2004-03-30
打赏
举报
回复
int *p; //定义一个指向int的指针,现在p的值是随机的,也就是讲p指向的内存地址不定.
int a =10;
p=&a; //使p指向a.
int *p = (int *)malloc(2); //使这指向一个从heap(堆)分配的地址.
*p=10; //给刚分配的地址赋值
//注意,要delete p,否则会有内存泄露。
pengzhenwanli
2004-03-30
打赏
举报
回复
第一种用法,在实际中不大可能会用到。传递函数参数的时候使用
第二种需要自己管理内存的分配与释放
xrdsheng
2004-03-30
打赏
举报
回复
第一种在栈分配内存,会自动释放,第二种在堆分配内存,需自已释放,
int *p = (int *)malloc(2);
*p=10;
free(p);
bideyore
2004-03-30
打赏
举报
回复
delete p 是CPP的用法吧,与new搭配;
C中是malloc()与free()成对出现;
不对之处请高手指正。
java算法大全(含源码包)
java算法大全,有近100多种常见算法的源代码,是学习JAVA算法的难得资料。
一元云购源码云购源码夺宝 程序源码
一元云购源码云购源码夺宝 程序源码,3.17版本的。现在共享出来给大家研究,源码内图片删掉了,里面有点bug也需要自己解决,介意者请绕道
用发送ICMP数据包的方法实现的Ping程序
用发送ICMP数据包的方法实现的Ping程序
C#入门必看实力程序100个
C#入门必看含有100个例字,每个例子都是针对C#的学习关键知识点设计的,是学习C#必须知道的一些程序例子,分享给大家,需要的可以下载
结构之法算法之道blog最新博文集锦第6期CHM文件
结构之法算法之道blog最新博文集锦第6期CHM文件,1月13日制作,请君享受。
C语言
70,039
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章