我如何打印存储在函数中的值,函数返回一个指针

爱莎

我对编程很陌生,所以请多多包涵!

这是我的代码(在C中):

int * arrayExpander(int arr[], int size);

int main()
{
    int arr[] = { 1,2,3,4,5 };
    int size = 5;
    int* arrPtr = arrayExpander(arr, size);

    for (int i = 0; i < size * 2; i++) {
        printf("New array: %d \n", *arrPtr);
    }
}

int * arrayExpander(int arr[], int size)
{
    int newInt[10];
    int* expandedArr = &newInt;

    //move elements from original to expanded and initialise remaining elements with 0

    for (int i = 0; i < size * 2; i++) {
        if (i < size) {
            expandedArr[i] = arr[i];
        } else {
            expandedArr[i] = 0;
        }
    }
    return expandedArr;
}

我的打印语句没有正确打印出expandedArr中存储的值。我已经尝试了一些变种,但不确定如何解决。

提前致谢

克里希纳(Krishna Kanth)Yenumula

在您的代码中,expandedArr是一个局部指针变量,当我们从函数返回后,该变量将被销毁。我们需要使用来分配内存malloc以延长其寿命。参见下面的代码:

#include<stdio.h>
#include<stdlib.h>
int * arrayExpander(int arr[], int size);

int main()
{
    int arr[] = { 1,2,3,4,5 };
    int size = 5;
    int* arrPtr = arrayExpander(arr, size);

    for (int i = 0; i < size * 2; i++) {
        printf("New array: %d \n", *(arrPtr+i)); // *arrPtr prints only first element
    }
}

int * arrayExpander(int arr[], int size)
{
    
    int* expandedArr = malloc(10*sizeof(int)); // You need allocate memory in heap

    //move elements from original to expanded and initialise remaining elements with 0

    for (int i = 0; i < size * 2; i++) {
        if (i < size) {
            expandedArr[i] = arr[i];
        } else {
            expandedArr[i] = 0;
        }
    }
    return expandedArr;
}

输出 :

New array: 1 
New array: 2 
New array: 3 
New array: 4 
New array: 5 
New array: 0 
New array: 0 
New array: 0 
New array: 0 
New array: 0 

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在一个函数中存储值并从另一个函数进行打印/修改?

我想使用指针从函数返回多个值,但它返回一个值

我如何获得一个函数以返回相邻单元格中的值,而不是将其打印在编写该函数的单元格下方?

我需要从一个函数返回多个值并将它们打印在我的 Wordpress 模板中

当我在另一个函数中调用一个函数时,返回值不会被打印出来,所以我需要使用打印函数

使用指针在C中的一个函数中返回多个值

如何让我的函数在地图中返回一个值而不是一个 Promise 挂起?

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

如何让我的代码在最后输出一个格式化的值,并将它放在一个函数中,并带有一个返回值?

如果我在返回一个函数的函数中延迟一个函数会怎样?订购如何?

如果我在我的函数中返回一个类,它存储在哪里?

实现一个返回指针的函数

在函数的函数中返回一个值

如何在另一个函数中引用 2 个函数的返回值?

编写一个函数,该函数返回并打印列中所有值中的最大值

如何使用数组的返回值(在我的例子中是“右”和“左”)从一个函数(“提取”)到另一个函数(“BinToDec”)?

我如何从python中的函数打印并返回值?

如何使用函数返回值作为PHP中另一个函数的参数?

如何创建一个在三个向量中打印相同值数量的函数?

如何在列表压缩中从调用函数的多个返回变量中存储一个变量?

我如何定义一个函数,如果迭代器中的每个值都为true,则返回true?

如何从匹配表达式中返回一个值而不在函数中返回?

我的函数返回的列表中只有一个整数,如何使它仅返回整数?

我如何从Serde返回一个返回Result <(),Error>的函数中的错误

如何从存储在另一个 php 文件中的函数返回变量?

如何声明一个函数指针?

我应该如何解决“预期在箭头函数结束时返回一个值。”?

我如何定义一个使用 Python 读取并返回列表中所有值的函数?

我可以使一个函数返回列表中的多个值吗?