C-函数传数组参数给另一个函数,使用malloc

//
// main.c
//
//
// Copyright ? 2018 [email protected]
//

#include <stdio.h>

#include<stdio.h>
void fun(int *array){
int sum=0;
for(int i=0;i<5;i++){
printf("%d\n",array[i]);
sum=sum+array[i];
}
printf("%d",sum);

}
int main(){
int *buffer=(int*)malloc(sizeof(int)*5);
if(buffer==NULL) exit(1);
int array[5]={2,4,5,5,3};
memcpy(buffer,array,sizeof(int)*5);
fun(buffer);
}

   在C函数中声明的非全局变量都分配在函数的栈中,函数执行完毕后,内存将释放。因此,当一个函数传参数给另外一个函数时,如果传递的是一个内存块(比如数组等)的引用和指针,要使用malloc在堆中分配内存,这样,才可以在多函数中共享访问。

原文地址:http://blog.51cto.com/13959448/2315559

时间: 2024-11-13 08:29:56

C-函数传数组参数给另一个函数,使用malloc的相关文章

C++给函数传数组参数

在C++中,如果要给一个函数传入一个数组,一般都是传入两个参数一个数组指针和一个数组大小. 单独传递一个数组或者指针进去,会导致数组不完整. 做个试验: #include <iostream> using namespace std; int getAverage(int arr[]); int getAverage(int arr[]) { int i; int len = (sizeof(arr) / sizeof(int)); int sum = 0; int *p = arr; for

把sort函数的输入参数comparer变成一个函数类型

相关的浏览器调试技巧,前端人员基本上都多多少少知道一些,所以这里我也就不从简到复杂一个个列举了,有兴趣的小伙伴可以百度之相关的一些浏览器调试的常识(也许我以后会写也说不定),我今天说的如标题,主要是事件定位与源码查找:什么意思那?比如有个场景1:在前端工作中,集团官网出了个脚本问题,老板/主管让你去解决,打开网站,恩 代码写的很牛逼,但不是我写的啊 作为前端人员,浏览器调试是必不可少的工作之一,甚至与页面制作一样重要,试想生产环境以及日常bug中出现的问题,无法重现问题进行调试或者不知道如何下手

php array_rand()函数从数组中随机选择一个或多个元素

php使用array_rand()函数从数组中随机选择一个或多个元素的方法. 使用array_rand() 函数从数组中随机选出一个或多个元素,并返回. array_rand(array,number) 参数 描述 array 必需.规定输入的数组参数. www.jbxue.com number 可选.默认是 1.规定返回多少个随机的元素. 例子: <?php $a=array("a"=>"Dog","b"=>"Cat

swift向方法传数组参数的语法

总是记不住向方法中传数组参数的语法,所以记录一下. func calculateStatistics(scores:[Int]) -> (min:Int,max:Int,sum:Int) { var min = scores[0] var max = scores[0] var sum = 0 for score in scores { if score>max { max=score } else if score<min{ min=score } sum += score } ret

C语言结构体及函数传递数组参数示例

注:makeSphere()函数返回Sphere结构体,main函数中,调用makeSphere()函数,传递的第一个参数为数组,传递的数组作为指针. 版权声明:本文为博主原创文章,未经博主允许不得转载.

go语言笔记——append是内置的函数!!!new是一个函数!!!调试可以使用闭包,本质上是print调试,尼玛!

内置函数 Go 语言拥有一些不需要进行导入操作就可以使用的内置函数.它们有时可以针对不同的类型进行操作,例如:len.cap 和 append,或必须用于系统级的操作,例如:panic.因此,它们需要直接获得编译器的支持. 以下是一个简单的列表,我们会在后面的章节中对它们进行逐个深入的讲解. 名称 说明 close 用于管道通信 len.cap len 用于返回某个类型的长度或数量(字符串.数组.切片.map 和管道):cap 是容量的意思,用于返回某个类型的最大容量(只能用于切片和 map)

给model模型传数组参数

$res = $this->Company->companyDischarge($this->user_id,array(0=>'c.limit_sum>0',1=>'cp.kh_city="'.$kh_city.'"'),$page,$this->num); 取值 $conditions = array('c.limit_sum>0'); if(isset($_REQUEST['kh_city'])&&$_REQUEST

C#.NET常见问题(FAQ)-如何把函数名作为参数传递给另一个函数

在主窗体中使用的还是普通的函数,但是test函数有一个新的参数,就是method ? 这个method所指向的就是前面委托定义的method ? ? 更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com/acetaohai123 ? 我的在线论坛: http://csrobot.gz01.bdysite.com/ ? 问题交流: QQ:910358960 邮箱:[email protected] ?

loadrunner两个函数:取参数长度和时间戳函数

出自中国IT实验室2014-05-23 00:01 1.web_save_param_length 函数 函数原型:int web_save_param_length( const char *Param, const char *Base, LAST ); 返回值:LR_PASS (0) 成功 , LR_FAIL(1) 失败 作用:得到指定参数的长度大小. 参数解释:Param 需要获得的参数名称,Base 参数大小的格式包括Hexadecimal(十六进制) 和 Decimal(十进制) 2