相关疑难解决方法(0)

508
推荐指数
8
解决办法
5万
查看次数

通过NULL类指针调用类方法

我有以下代码片段:

class ABC{
public:
        int a;
        void print(){cout<<"hello"<<endl;}
};

int main(){
        ABC *ptr = NULL:
        ptr->print();
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

它运行成功.有人可以解释一下吗?

c++

38
推荐指数
6
解决办法
8466
查看次数

使用未分配的内存没有错误?

为什么这样做?

#include <iostream>
using namespace std;

int main() {
    float* tab[3];

    int i = 0;
    while(i < 3) {
        tab[i] = new float[3-i];
        i++;
    }

    cout << tab[2][7] << endl;
    tab[2][7] = 6.87;
    cout << tab[2][7] << endl;

    i = 0;
    while(i < 3)
        delete[] tab[i];
}
Run Code Online (Sandbox Code Playgroud)

虽然这个没有?

#include <iostream>
using namespace std;

int main() {
    float* tab = new float[3];

    cout << tab[7] << endl;
    tab[7] = 6.87;
    cout << tab[7] << endl;

    delete[] tab;
}
Run Code Online (Sandbox Code Playgroud)

我在Win XP上使用MS VS …

c++ linux windows memory-management

8
推荐指数
3
解决办法
2371
查看次数