C++:使用动态内存创建动态数组

标签 c++ arrays

我正在尝试创建一个动态数组或者你应该怎么调用它,使用指针,但是当我在设置元素后尝试计算数组的长度时,它给了我 0。我不确定我“这里做错了。”

代码如下:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    int *p = NULL;
    int kek = 0;

    cin >> kek;

    p = new int[kek];

    for (int i = 0; i < kek; i++) 
    {
        p[i] = 0;
    }

    int sizeOfArray = sizeof(p) / 8;
    cout << sizeOfArray << endl;
    delete[] p;
}

最佳答案

最好使用 STL vector ,它有 size() 方法

#include <iostream>
#include <vector>


using namespace std;


int main()
{

    vector<int> p;
    int kek = 0;

    cin >> kek;

    p.resize(kek);    

    for (int i = 0; i < kek; i++) 
    {
        p[i] = 0;
    }

    int sizeOfArray = p.size();
    cout << sizeOfArray << endl;
    p.clear();
    return 0;
}

关于C++:使用动态内存创建动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31147123/

相关文章:

javascript - 切片数组并从 RTL/LTR 转换

C++ strcat 忽略了一个参数?

c++ - 异常已处理,但在被捕获后程序被中止

c++ - 将字符串序列化为 UTF 无 BOM

c++ - 哪个更喜欢,复制构造函数或对象赋值?

javascript - 为什么 GSON 将对象数组转换为字符串数组?

javascript - 循环遍历包含对象的数组的数组,并在 JavaScript/Angular 中更新数组

c++ - 如何绕过警告 "rvalue used as lvalue"?

php - 无法访问 php 中的数组值

arrays - 如何在普通的lisp中获取数组的行大小和列?