使用指针来实现变长数组(VLA)

Posted jingwenxing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用指针来实现变长数组(VLA)相关的知识,希望对你有一定的参考价值。

实现代码:

#include <cstdio>
#include <cstdlib>
void usePtoImplementVLA(int SIZE)
{
    scanf("%d", &SIZE);
    int *pVLA = (int *)malloc(sizeof(int) * SIZE);
    
    for (int i = 0; i < SIZE; i++)
        scanf("%d", &pVLA[i]);
    
    free(pVLA);
}

实现思路:

1、输入创建指针大小SIZE
2、使用sizeof函数得出需要的空间大小。例:输入10sizeof(int) * SIZE得出40。
3、使用malloc函数动态分配内存空间。(注:一般的时候,malloc函数与free函数连用)
4、用for循环输入每一个数据。
5、用free函数释放内存空间。

参考资料:

cplusplus-malloc
百度百科-malloc
cppreference-sizeof







以上是关于使用指针来实现变长数组(VLA)的主要内容,如果未能解决你的问题,请参考以下文章

变长数组(variable-length array,VLA)

我是不是应该检查并释放 VLA 类的分配运算符 (operator=) 中的指针

`sizeof` 的操作数是用 VLA 评估的吗?

Go语言技巧之正确高效使用slice(听课笔记总结--简单易懂)

Go语言技巧之正确高效使用slice(听课笔记总结--简单易懂)

Go语言技巧之正确高效使用slice(听课笔记总结--简单易懂)