使用Visual Studio 2017学习c ++ [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Visual Studio 2017学习c ++ [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

这是有错误的图像

enter image description here

我尝试使用指针,但没有工作。

答案

您无法重新分配数组。定义数组后,其大小是固定的。您只能更改数组的内容而不是大小。

通过声明

nume = new char[7];

您正在定义从堆创建到现有数组变量的新数组。两者都有不同的类型,因此它们是不兼容的。

“char nume [50];”类型为'char',“new char [7]”的类型为'char *'

因此,在“=”的左侧,您应该有一个char *变量来存储堆中分配的7个char位置的起始地址。

如果您希望此变量的最大大小为50,如Student class member char nume [50]中所定义,则可以删除以下语句;

nume = new char[7];

或者您可以将成员数更改为'char*'并在构造函数中分配内存。如果这样做,请确保删除Student类的析构函数中的内存。

喜欢

class Student
{
public:
    char* nume;
// other members
Student()
{
    nume = new char[7]; // Determine the size of nume here.
// Rest of the constructor code
}
~Student()
{
    delete[] nume;
// Rest of the destructor code
}
};

以上是关于使用Visual Studio 2017学习c ++ [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C++17 标准库包括不使用 Visual Studio 2017 中的 Android 项目

如何使用 Visual Studio 2017 Linux 支持编译和构建 C++17 代码?

使用本机单元测试项目在 Visual Studio 2017 中对 C 代码进行单元测试

visual 2017c++兼容2015c++吗

如何在 Visual Studio 2017 中使用 C# 8?

如何在 Visual Studio 2017 中使用 C# 8?