游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3418|回复: 7

刚刚知道,原来静态变量也是可以delete的。。

[复制链接]

51

主题

134

帖子

140

积分

注册会员

Rank: 2

积分
140
发表于 2007-12-9 00:47:00 | 显示全部楼层 |阅读模式
#include <stdio.h>
#include <tchar.h>
#include <iostream>
static int a=10;
int _tmain(int argc, _TCHAR* argv[])
{

        int *b=&a;
        delete[] b;
        std::cout<<a<<std::endl;
        return 0;
}


程序出错。。。

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2007-12-9 01:18:00 | 显示全部楼层

Re:刚刚知道,原来静态变量也是可以delete的。。

  1. #include <iostream>

  2. static int a=10;

  3. int main()
  4. {
  5.     int* b = &a;
  6.     std::cout << "flag 1" << std::endl;
  7.     delete[] b;
  8.     std::cout << "flag 2" << std::endl;
  9.     std::cout << a << std::endl;
  10.     return 0;
  11. }
复制代码


func@func-laptop:~$ g++ test.cpp
func@func-laptop:~$ ./a.out
flag 1
段错误 (core dumped)

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2007-12-9 01:21:00 | 显示全部楼层

Re:刚刚知道,原来静态变量也是可以delete的。。

显然段错误发生在“delete[] b;”这句。
语法没错不代表程序没错。

8

主题

390

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
发表于 2007-12-9 10:55:00 | 显示全部楼层

Re:刚刚知道,原来静态变量也是可以delete的。。

变量可以删除么?

54

主题

2916

帖子

3765

积分

论坛元老

Rank: 8Rank: 8

积分
3765
QQ
发表于 2007-12-9 17:07:00 | 显示全部楼层

Re:刚刚知道,原来静态变量也是可以delete的。。

我可不想玩这种操作。

17

主题

737

帖子

743

积分

高级会员

Rank: 4

积分
743
发表于 2007-12-9 21:30:00 | 显示全部楼层

Re:刚刚知道,原来静态变量也是可以delete的。。

本来指针这东西就是要程序员自己管好的。。

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2007-12-11 09:07:00 | 显示全部楼层

Re:刚刚知道,原来静态变量也是可以delete的。。

无语

请不要拿自己开玩笑

2

主题

29

帖子

29

积分

注册会员

Rank: 2

积分
29
QQ
发表于 2007-12-19 08:37:00 | 显示全部楼层

Re:刚刚知道,原来静态变量也是可以delete的。。

6L 说的有点道理。这种应用在WIN32编程中应用多。句柄的分配与释放。。。等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-14 17:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表