|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求大神解答个问题,一直搞不懂
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
873
人关注过本帖
标题:
求大神解答个问题,一直搞不懂
只看楼主
加入收藏
PP_make
等 级:
论坛游民
帖 子:21
专家分:62
注 册:2010-4-25
第
11
楼
收藏
得分:0
回复 8楼 SGT_JM
呵呵,分析的很到位!学习了,在此顶一下!!
free(str);
只是把所申请的内存空间释放了,但指针还是存在的,所只的内存地址还是原来的地址,可以使用 printf("%lx\n", &str); 查看一下。
再次pirntf("%s\n", str ); 时为空,但用if 判断时却不为空! 却时显得很诡异!!
一般的情况下,free(str)之后,也就接着把 str = NULL; 这也许就是原因所在吧~~
2011-03-21 16:56
举报帖子
使用道具
赠送鲜花
njkido
等 级:
蜘蛛侠
帖 子:224
专家分:1184
注 册:2011-3-8
第
12
楼
收藏
得分:0
野指针问题
2011-03-21 17:40
举报帖子
使用道具
赠送鲜花
hiwo
等 级:
新手上路
帖 子:54
专家分:0
注 册:2008-10-16
第
13
楼
收藏
得分:0
有点懂了,多谢各位啊
2011-03-21 21:06
举报帖子
使用道具
赠送鲜花
玄界宗主
等 级:
论坛游民
帖 子:10
专家分:22
注 册:2011-3-21
第
14
楼
收藏
得分:0
刚才我调试了一下,我的说显示没有malloc的定义我加了malloc.h 但还是没有定义。什么意思?知道的朋友说下。
2011-03-21 21:38
举报帖子
使用道具
赠送鲜花
我是传奇
等 级:
论坛游侠
帖 子:88
专家分:109
注 册:2011-3-21
第
15
楼
收藏
得分:0
#include<stdio.h>
#include<malloc.h>
#include<string.h>
void main()
{
char *str = (char *) malloc(100);
strcpy(str, "hello");
free(str);
str = NULL;
if(str != NULL)
{
strcpy(str, "world");
printf("%s\n",str);
}
}
不知道为啥,不显字符,是运行速度太快了吗?
2011-03-22 12:27
举报帖子
使用道具
赠送鲜花
我是传奇
等 级:
论坛游侠
帖 子:88
专家分:109
注 册:2011-3-21
第
16
楼
收藏
得分:0
包头文件了吗,就是#include"string,h"
2011-03-22 12:28
举报帖子
使用道具
赠送鲜花
eduwc
等 级:
新手上路
帖 子:8
专家分:1
注 册:2011-2-10
第
17
楼
收藏
得分:0
char *str = (char *) malloc(100);
strcpy(str, "hello");
free(str);
//这个语句的作用是把str删除吗?
if(str != NULL)
//指针被释放了,他会随机指向一个值(这里一定不会为空)
{
char *str = (char *) malloc(100);//重新在申请空间
strcpy(str, "world");
printf("%s\n",str);
}
要想输出的 加上红色的那一句就好
ps;
我是传奇
你在程序最后面加上system("pause");就不会闪一下就消失了
2011-03-22 16:44
举报帖子
使用道具
赠送鲜花
17
2/2页
1
2
快速回复:
求大神解答个问题,一直搞不懂
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.025240 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved