小声问:这个指针为什么改变不了啊?
时间:2010-08-17
来源:互联网
#include <stdlib.h>
deleteint(int *n)
{
free(n);
n = NULL;
}
int main()
{
int *intpt = (int *)malloc( sizeof(int));
*intpt = 5;
deleteint(intpt);
}
在main()中intpt:0x009e29b8,我在deleteint()中改为NULL,可回到main()后怎么还是:0x009e29b8?
作者: liklstar 发布时间: 2010-08-17
作者: hellioncu 发布时间: 2010-08-17
hellioncu 发表于 2010-08-17 17:11
可是在一个过程中断链、接链不是都可以吗?为什么那就可以而这个n却传不出来呢?
作者: liklstar 发布时间: 2010-08-17
什么样的指针操作在过程中可以带出来,而什么样的不能啊?
作者: liklstar 发布时间: 2010-08-17
liklstar 发表于 2010-08-17 17:13
那本讲指针的书看看吧,总比我说的强
作者: hellioncu 发布时间: 2010-08-17
作者: efolzl 发布时间: 2010-08-17
作者: samlumengjun 发布时间: 2010-08-17
同理要在传参中改变指针的值,需要使用指针的指针
不过你这里可以把NULL return回来赋值给需要free的变量。
作者: davelv 发布时间: 2010-08-17
#include <stdio.h>
#include <stdlib.h>
struct intLink {
int id;
struct intlink *next;
} *intlink=NULL;
deleteint(int *n)
{
free(n);
n = NULL;
}
deletelink(struct intLink *link)
{
struct intLink *node;
node = link;
node = node->next;
link->next = node->next;
free(node);
}
main()
{
int *intpt = (int *)malloc( sizeof(int));
struct intLink *p;
*intpt = 5;
deleteint(intpt);
intlink = (struct intLink *)malloc(sizeof(struct intLink));
p = intlink;
p->id = 1;
p->next = (struct intLink *)malloc(sizeof(struct intLink));
p = p->next;
p->id = 2;
p->next = (struct intLink *)malloc(sizeof(struct intLink));
p = p->next;
p->id = 3;
p->next = NULL;
deletelink(intlink);
p = intlink;
while (p != NULL) {
printf("\nndoe[%d] is exists", p->id);
p = p->next;
}
}
断链能成功,是不是因为我给的是next变量的地址啊?为什么对next操作能成功呢?而要改变intpt的值(地址)就要给intpt的地址?
作者: liklstar 发布时间: 2010-08-17
- #include <stdio.h>
- #include <stdlib.h>
-
- deleteint(int **n)
- {
- free(*n);
- *n = NULL;
- }
-
- int main()
- {
- int *intpt = (int *)malloc( sizeof(int));
-
- *intpt = 5;
-
- deleteint(&intpt);
-
- }
作者: zhangsuozhu 发布时间: 2010-08-17
想要改变指针变量?一样啊,也要传递指向指针的指针,不一定是二级指针,理论上更多层次的指向应该也是可以的
作者: liwangli1983 发布时间: 2010-08-17
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28