| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1759 人关注过本帖
标题:咨询字符型指针或整形指针在定义后分配内存空间的问题
只看楼主 加入收藏
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
结帖率:84.38%
收藏
已结贴  问题点数:2 回复次数:17 
咨询字符型指针或整形指针在定义后分配内存空间的问题
在定义字符或整型指针的时候,是不是必须要先分配空间,再使用?
如这题
#include"stdio.h"
int main(){
    char *a;
    gets(a);
    printf("%s",a);
}
,并没有用如下方式分配内存
char a[80];
 char* b=a;
你为什么能正确运行?还有是不是可这样理解,在程序中如出现
  char *a;
    gets(a);
这种情况,他会随机的分配内存地址,如在大程序中,这样使用,可能会占用其他变量的内存,引起程序错误,所以在定义指针的时候,必须要先赋予地址?????????????
搜索更多相关主题的帖子: include 空间 内存 
2012-01-10 22:30
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
1. 出于安全考虑,是的
2. 是的
你要清楚的知道你当前正在用的指针指向了一个有效的地址空间

技术问题,请不要以短消息方式提问
2012-01-10 22:36
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用zaixuexi在2012-1-10 22:36:52的发言:

1. 出于安全考虑,是的
2. 是的
你要清楚的知道你当前正在用的指针指向了一个有效的地址空间
嗯,明白了,呵呵

认为事物非黑即白是缺智慧的表现……
2012-01-10 22:56
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
char *a;这只是声明了一个字符型的指针变量,没有分配内存,指针未初始化,指向的内存是不可控的。你对指针的理解还很不到位,需要大量的练习

[ 本帖最后由 embed_xuel 于 2012-1-10 23:07 编辑 ]

总有那身价贱的人给作业贴回复完整的代码
2012-01-10 23:02
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用embed_xuel在2012-1-10 23:02:44的发言:

char *a;这只是定义了一个字符型的指针变量,没有分配内存,指针未初始化,指向的内存是不可控的。你对指针的理解还很不到位,需要大量的练习
嗯嗯。就是一有空就在练习

认为事物非黑即白是缺智慧的表现……
2012-01-10 23:04
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
回复 4楼 embed_xuel
什么叫没有分配内存?是指针指向了无效的地址空间,malloc也只是返回了一片地址空间的首地址,和这个指针本身无关,指针本身在栈上的地址还是要被释放的,懂?

技术问题,请不要以短消息方式提问
2012-01-10 23:07
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 6楼 zaixuexi
还有是不是可这样理解,在程序中如出现  char *a;    gets(a);这种情况,他会随机的分配内存地址
------我回答这句没有分配内存!!手机码字照顾不到那么全

总有那身价贱的人给作业贴回复完整的代码
2012-01-10 23:10
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
我记得在 C FAQ  里有你的问题,好像是在第七章,malloc那一块,它的解释是: 那是你运气好,正好有这么一块可以write的区域,但决对是不可以这样做的

The quieter you become, the more you can hear
2012-01-10 23:10
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
回复 7楼 embed_xuel

技术问题,请不要以短消息方式提问
2012-01-10 23:12
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:0 
很久没来了 打个酱油  早上好。

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2012-01-11 02:25
快速回复:咨询字符型指针或整形指针在定义后分配内存空间的问题
数据加载中...
 
   



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

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