首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >练习14—元素求和

练习14—元素求和

作者头像
攻城狮杰森
发布于 2022-06-03 03:26:25
发布于 2022-06-03 03:26:25
22700
代码可运行
举报
文章被收录于专栏:技术集锦技术集锦
运行总次数:0
代码可运行

题目

从键盘输入n (个数不限)个整形数字,放入数组PArray, 调用函数 int *Calc(int *PA,int Num); 计算数组中所有元素的和返回到 main 函数,输出计算结果。

解题步骤

(1)定义数组、变量; (2)接收设定值; (3)分配内存空间; (4)元素求和; (5)输出;

C语言

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
#include <stdlib.h>

int *Calc(int *PA, int Num)
{

    int sum = 0, i;
    for (i = 0; i < Num; i++)
    {
        sum += PA[i];
    }
    PA[0] = sum;
    return PA;
}

int main()
{
    int *PArray = NULL;
    int Total = 0, i = 0;
    printf("enter the number of elements in arrays:\n");
    scanf("%d", &Total);
    PArray = (int *)malloc(Total * sizeof(int));
    printf("give %d element assignment:\n", Total);
    for (i = 0; i < Total; i++)
    {
        scanf("%d", &PArray[i]);
    }
    PArray = Calc(PArray, Total);
    printf("Sum=%d\n", *PArray);
    free(PArray);
    return 0;
}

说明

  1. 使用指针,及时初始化;
  2. 动态分配内存空间,包含头文件<stdlib.h>,函数原型void* malloc (size_t size);返回值类型是void *,void 表示返回未知指针类型。
  3. 通常,malloc()使用时需要进行强制类型转换,如(int *)malloc(Total * sizeof(int));修改 void 指针为所需类型;
  4. Calc()为指针类型函数,值 sum 返回主函数时不可直接返回。将 sum 值存入数组首地址,也就是作为第一个元素,返回数组首地址即可;
  5. 动态申请的内存空间最后要使用free()释放;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C动态内存管理
现在有一个需求:先输入一个整数n,再输入以空格分隔的n个整数,然后求出这n个整数中最大的数。
WuShF
2023/02/27
5920
C动态内存管理
C/C++ 操作数组与指针笔记
const 使用场景 高效传递,一般为了高效,我们使用地址传递,这样就无须重复拷贝了。
王 瑞
2022/12/28
7630
2.1 C/C++ 使用数组与指针
C/C++语言是一种通用的编程语言,具有高效、灵活和可移植等特点。C语言主要用于系统编程,如操作系统、编译器、数据库等;C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统、图形用户界面、嵌入式系统等。C/C++语言具有很高的效率和控制能力,但也需要开发人员自行管理内存等底层资源,对于初学者来说可能会有一定的难度。
王 瑞
2023/10/10
4050
2.1 C/C++ 使用数组与指针
C 语言中的 malloc,free,calloc,realloc
malloc函数 原型:extern void* malloc(unsigned int size); 功能:动态分配内存; 注意:size 仅仅为申请内存字节大小,与申请内存块中存储的数据类型无关,故编程时需要通过以下方式给出:长度 * sizeof(数据类型); 示例: //动态分配内存,输入5个数据,并把低于60的值打印出来 #include <stdio.h> #include <stdlib.h> int main() { int *ptr = (int *)ma
村雨遥
2022/06/15
5200
C语言——动态内存分配
从名字上来看,动态内存分配就是可以动态调整内存空间,那么我们为什么要进行动态内存开辟呢?
用户11352420
2024/11/07
2620
C语言——动态内存分配
[C语言]动态内存管理与柔性数组
1. 栈区( stack ):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结
IT编程爱好者
2023/04/12
3890
[C语言]动态内存管理与柔性数组
C语言进阶(十二) - 动态内存管理
void* malloc(size_t size); 头文件<stdlib.h>
怠惰的未禾
2023/04/27
6320
C语言进阶(十二) - 动态内存管理
动态分配与静态分配的区别
所谓动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不象数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。
C语言与CPP编程
2020/12/02
3.1K0
C语言calloc()函数:分配内存空间并初始化——stm32中的应用
经常在代码中看到使用malloc来分配,然后memset清零,其实calloc更加方便,一句顶两句~
用户4645519
2020/09/07
1.8K0
【重拾C语言】十三、动态数据组织(一)动态变量(malloc、calloc、realloc、free)
C语言中的动态数据组织是指在程序运行时根据需要动态地分配内存空间来存储数据。这允许程序在运行时根据实际需求来创建、修改和释放数据结构,而不是在编译时固定地分配内存。
Qomolangma
2024/07/30
2740
【重拾C语言】十三、动态数据组织(一)动态变量(malloc、calloc、realloc、free)
C语言实例_实现malloc与free函数完成内存管理
malloc函数用于在堆(heap)中分配指定大小的内存空间,并返回一个指向该内存块的指针。
DS小龙哥
2023/08/24
6800
C语言实例_实现malloc与free函数完成内存管理
手把手教玩你转动态内存管理(InsCode Stable Diffusion 美图活动一期)
关于函数定义的图片均出自cplusplus.com - The C++ Resources Network
大海里的番茄
2024/01/19
2140
手把手教玩你转动态内存管理(InsCode Stable Diffusion 美图活动一期)
c语言指针的有关总结
像我们可以写程序来操纵计算机内存这样子。 或者我们可以这样认为,物理内存是可以看得见,摸得着的,而虚拟内存反之。有关对虚拟内存的更深的认识点击这里虚拟内存
兰舟千帆
2022/07/17
4140
c语言指针的有关总结
简单的通过demo了解C++的基础语法笔记
许久未碰C++的相关内容,已经有些被大脑的程序执行Lru算法了,导致近期在做NDK开发的时候,各种操作卡顿,决心还是回忆整理一下相关的基础知识。
包子388321
2020/06/16
4800
C语言内存管理详解
C语言不像其他高级语言那样提供自动内存管理,它要求程序员手动进行内存的分配和释放。在C语言中,动态内存的管理主要依赖于 malloc、calloc、realloc 和 free 等函数。理解这些函数的用法、内存泄漏的原因及其防止方法,对于编写高效、可靠的C程序至关重要。
池央
2025/02/10
3620
C语言内存管理详解
探索动态内存开辟的奥秘
有时候我们需要的空间⼤⼩在程序运⾏的时候才能知 道,那数组的编译时开辟空间的⽅式就不能满⾜了。因此,C语⾔引⼊了动态内存开辟,让程序员⾃⼰可以申请和释放空间,就⽐较灵活了。
秋邱
2024/10/09
1580
探索动态内存开辟的奥秘
C进阶:动态内存函数 malloc calloc realloc free及常见动态内存开辟错误
上文中讲到这是C标准未定义的,所以取决于编译器,编译器不同,对这种情况的处理也不同;
aosei
2024/01/23
4140
C进阶:动态内存函数 malloc calloc realloc free及常见动态内存开辟错误
动态内存管理(2)
在调用GetMemory函数时,传的是str的值,p是str的一份临时拷贝,p里面放的也是NULL,接着,把malloc开辟空间的地址给了p,但是str还是NULL,那么strcpy中的str就是NULL,就会对空指针进行解引用操作;同时,动态申请的内存空间没有释放,存在内存泄漏的问题(而且出了GetMemory函数之后想释放也释放不了,因为p所在的那块内存空间已经被销毁了,已经还给操作系统了)。
waves浪游
2024/02/08
1610
动态内存管理(2)
C语言从入门到实战——动态内存管理
在C语言中,动态内存管理是指程序运行时,通过调用特定的函数动态地分配和释放内存空间。动态内存管理允许程序在运行时根据实际需要来分配内存,避免了静态内存分配在编译时就确定固定大小的限制。
鲜于言悠
2024/03/20
4010
C语言从入门到实战——动态内存管理
【C语言】动态内存管理
但是这样开辟的空间有两个特点: ①空间开辟的大小是固定的 ②数组长度大小不能改变 这样我们引入动态内存开辟,就可以实现我们自己申请和释放空间
s-little-monster
2024/06/06
1650
【C语言】动态内存管理
相关推荐
C动态内存管理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档