Malloc and class
Malloc and class
今天我的一个朋友发给我这个代码,告诉我上面有一个错误,但我不确定它在哪里。有人能帮帮我吗?
class MyClass
{
int *n;
MyClass()
{
n = new int;
}
~MyClass()
{
delete n;
}
int main()
{
MyClass *c = (MyClass*)malloc(sizeof(MyClass));
free(c);
}
}
最大的错误是缺少main
功能。它应该在类声明之外。
此外,在c++中应该像这样使用new
:
MyClass *smth=new MyClass(some_arg);
delete smth;
另一个错误是在类的构造函数和析构函数中引用的未定义变量i
。您可能应该使用n
。
说实在的,如果我是g++或者clang或者clang++之类的,我会优化所有的东西,因为它什么都不做:分配内存然后几乎立即释放它,构造函数和析构函数没有做任何有用的事情,因为变量i
不存在
我不确定你的代码的目标,但修复错误是这样的
#include<stdlib.h>
class MyClass
{
int *i;
MyClass()
{
i = new int;
}
~MyClass()
{
delete i;
}
};
int main()
{
MyClass *c = (MyClass*)malloc(sizeof(MyClass));
free(c);
}
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- 为什么 Clang 不允许"and"作为函数名称?
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- 位阵列上的快速AND运算
- "Undefined class"作为is_base_of的论据
- 是否可以在 C++03 中定义'move-and-swap idiom'等效项
- 如何将class.cpp和class.hpp编译为一个.o文件
- BoostPython and CMake
- OpenSSL BIO and SSL_read
- '{'标记之前的预期类名,然后在预声明时无效使用不完整的类型'class class_name'
- 如何使用"derived input class"创建派生类?
- Gurobi GRBModel and GRBmodel in C++
- 错误:"Left of getValue must have class/struct/union"
- Proper Class Modeling using C++ and const
- map<string, class> using and couting
- Singleton class, GraphicsManager and static
- flex and bison:C++ class
- Malloc and class