将数组地址从函数返回到指针(C ++)

美丽

我的作业分配在下面。万一我误读了一些东西。

“在一个名为PointerPractice.cpp的文件中,编写一个名为concatArrays的函数,该函数将两个int数组作为参数并将两个数组连接成该函数创建的第三个更大的数组。该函数应仅使用指针算术(无数组表示法),并且应返回指向新创建的数组的指针,该函数应具有以下原型:int * concatArray(int * pArray1,int size1,int * pArray2,int size2)。

在您的主要职能中:

  1. 创建两个大小为8和10的int数组。
  2. 使用循环,用随机数填充两个数组。每个随机数应在0到9(含)范围内。
  3. 打印两个数组并带有一些注释,以指示要打印哪个数组。
  4. 现在使用两个随机数组及其大小作为参数调用concatArray。
  5. 使用指针,保存对concatArray返回的数组的引用。
  6. 最后,在返回的数组上打印一些注释,表明它是concatArray的结果数组。”

当我从函数本身打印时,它会正确打印。当我尝试在main中将其打印出来时,它会在每个地址中打印出随机的数字字符串,而不是0-9之间的单个数字。

功能:

int* concatArray(int* pArray1, int size1, int* pArray2, int size2)
{
    int newArray[size1+size2];

    for(int i=0; i<size1+size2; i++)
    {
        if(i>size1)
        {
            *(newArray+i) = *(pArray2+i-size1);
        }

        else
        {
            *(newArray+i) = *(pArray1+i);
        }
    }

    cout<<endl;

    for(int i=0; i<size1+size2; i++)
    {
        cout << *(newArray+i)<<endl;
    }

    return newArray;

我在main中调用函数的位置:

ptrConcatArray = concatArray(myArray1, size1, myArray2, size2);

    cout <<endl;
    cout << "Resultant array:" << endl;

    for(int i=0; i<size1; i++)
    {
        cout << *(ptrConcatArray+i)<<endl;
    }
迈克·西摩

您正在返回一个指向本地数组的指针。函数返回时,数组已被破坏,指针悬空(即,未指向任何有效对象)。

您应该返回std::vector<int>一个可正确复制的动态数组(与内置数组类型不同),并自动管理该数组的内存。

如果您的分配禁止使用标准库(如它所说的“使用指针”),那么您可以返回一个指针,该指针指向分配有的数组new

int * newArray = new int[size1+size2];

这是一个坏主意,因为一旦完成,它将调用程序的责任放在了调用方上,以删除该数组。但是可能发生的最坏情况是内存泄漏,而不是返回悬挂指针将导致的内存损坏和未定义行为。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++将结果从多个线程返回到数组

来自分类Dev

OpenVMS(VAX)Fortran函数将字符*(*)返回到C

来自分类Dev

将char数组从C ++函数返回到tcl

来自分类Dev

如何将值从递归函数返回到数组

来自分类Dev

从C ++中的函数返回指向数组的指针?

来自分类Dev

将结构数组从c返回到c#

来自分类Dev

将两个指针返回到动态数组

来自分类Dev

C:如何将多个值从函数返回到main

来自分类Dev

将指针返回数组的函数

来自分类Dev

如何使用inline-c来包装将指针返回到自定义结构类型的函数?

来自分类Dev

在函数中传递数组地址并返回一个指针

来自分类Dev

将2D Cython指针返回到Python数组

来自分类Dev

如何将返回指针从C ++ dll函数返回到C#

来自分类Dev

PHP FFI-将数组Rust函数返回到PHP

来自分类Dev

将foreach值从函数返回到数组

来自分类Dev

将数组地址从函数返回到指针(C ++)

来自分类Dev

从C#调用C dll中的函数,该函数将某种类型的指针返回到函数指针

来自分类Dev

将int数组从C ++ .dll返回到C#

来自分类Dev

函数返回指针与函数返回数组在C中

来自分类Dev

将指针从库返回到应用

来自分类Dev

C ++将指针数组传递给函数

来自分类Dev

从C ++中的函数返回指向数组的指针?

来自分类Dev

将int array []或指向int array []的指针返回到C中的调用例程的函数

来自分类Dev

无法将数组从 php 函数返回到 ajax 请求

来自分类Dev

函数将地址返回到二维数组中的一行值?

来自分类Dev

Oracle 函数将行返回到 C#

来自分类Dev

使用指针将字符和浮点值从 scanf 返回到主函数 C

来自分类Dev

从函数返回到main的指针数组为NULL

来自分类Dev

C语言如何将指针从函数返回到指针

Related 相关文章

热门标签

归档