搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求大神解答个问题,一直搞不懂
标题:
求大神解答个问题,一直搞不懂
只看楼主
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
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-334316-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.389866 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved