| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1586 人关注过本帖
标题:想问个新手问题 - 关于字元运用
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
出現野指針的情況原因太多了,各式各樣,可以說每次都有新鮮,防不勝防,不可能說得盡怎麽預防。實際上,如果找得到有效預防這些問題的辦法,後起的在C基礎上發展起來的語言都不會那樣處理。連C++都要搞個“智能指針”出來,可想而知C的指針有多少陷阱。

授人以渔,不授人以鱼。
2015-01-21 15:31
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
没学多久,只想到这样故意恶搞的写法会改到值,让两个指针只到同一个地方。
硬要改写还会遇到'const int' to 'int *'的问题.
程序代码:
    
        int A[10]={0};
    for (int i=0;i<10;i++)
        A[i]=i;
    printf("%d , %d\n",A,A[5]);
    int *B=&A[5];
    *B=9000;
    printf("%d , %d ,%d\n",A,B,A[5]);
    return 0;

程序一大,确实会没法面面俱到,通常一个循环检查前数十笔过就让他跑了,而错误都会在几十万次或百万次之中突然跳一次,很烦.
不过一般写程序不可能故意把程序写到错乱,所以追根究底可能是习惯问题,造成语法正常,程序逻辑也正常,但是却出现异常状况,至于前台是指什么?
该不会是在说用Class里的窗口统一申请和释放内存?

不要選我當版主
2015-01-21 16:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
class的机制是“你申请我给出结果”,注意是“我”内部去处理数据,不是“你”自己处理数据,这就是所谓的{get; set;}方法。C#中把这称为“属性”,C++中没有属性,但可以写Get/Set方法(以Get/Set字头开始的类函数),在C中,直接写这类命名的函数——面向对象只是一种思想,关键不是语法,不管用C#,还是C++、C,都遵循这种思想写程序。

用一堆函数管理那个数组A[10],你不把数据的细节对外公开,谁能乱改得了那些数据!避免滥用指针是最根本的方法。


[ 本帖最后由 TonyDeng 于 2015-1-21 16:30 编辑 ]

授人以渔,不授人以鱼。
2015-01-21 16:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
遇到const的问题,并不是所有数据都是const的,现在的问题是数据被不莫名其妙地冲刷,但解决办法不是把数据设置为const了事,因为在程序逻辑上这些数据也可能是需要修改的,只是修改要在你自己的意愿下修改,那样数据就不能是const的,莫名地被改了数据是意外。

授人以渔,不授人以鱼。
2015-01-21 16:29
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1686
专家分:4252
注 册:2007-12-27
收藏
得分:0 
以下是引用wube在2015-1-21 12:05:00的发言:




意思是即使周期结束,指针失去意义,但是程式没告知系统,系统依然会锁定该申请过的空间,导致可申请的空间越来越少,然后出现不可预知道状况或错乱.
所以问题在指针映射的空间而不在指针.原来所谓野指针就是指这个.

可是空间不足跟资料被覆盖之间又是什么关系?

这个没有关系,那是另外的问题。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2015-01-21 20:47
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
給你看點資料:
https://msdn.


[ 本帖最后由 TonyDeng 于 2015-1-30 23:43 编辑 ]

授人以渔,不授人以鱼。
2015-01-30 23:31
快速回复:想问个新手问题 - 关于字元运用
数据加载中...
 
   



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

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