Я пытаюсь сделать некоторую практику для распределения памяти.Где я могу освободить память после выделения?
У меня есть код ниже, который работает, но у вас есть два вопроса.
Где я могу использовать delete [] для освобождения памяти после выделения?
Почему вывод для этого кода при использовании функции show() является CDcar ?.
#include <cstdlib>
#include <new>
#include <iostream>
#include <cstring>
using namespace std;
class automobile {
private:
char (*function)[30];
char *type;
double speed;
public:
automobile ();
automobile (double , char *);
void speed_up (double);
void speed_down(double);
const char * get_function () const;
void show ();
};
automobile::automobile () {
speed = 0;
function = new char [1][30];
strcpy(function[1], "CD player with MP3");
type = new char [4];
strcpy(type, "car");
}
automobile::automobile(double spd, char * fn) {
int sz;
}
void automobile::show () {
cout << "This is a " << type << " and it has the following functions: " << function[1] << ", and its speed is " << speed << " km/h\n";
}
int main () {
automobile car;
car.show ();
return 0;
}
это выход:
This is a car and it has the following functions: CDcar, and its speed is 0 km/h
Я думал, что выход Шоуда быть таким:
This is a car and it has the following functions: CD player with MP3, and its speed is 0 km/h
Пожалуйста посоветуйте
Почему название и вопрос разные ??? – UmNyobe
Почему вы не используете 'std :: string', ahmad? – jrok
@UmNyobe Вопрос в том, где я должен освободить память, а плитка - то же самое. но у меня есть другой вопрос о выходе. – Jack