malloc-这个c程序什么意思啊,特别是第二个函数什么意思?

问题描述

这个c程序什么意思啊,特别是第二个函数什么意思?

#include
#include
#include

void show_array(const double ar[], int n);
double * new_d_array(int n, ...);

int main()
{
double * p1;
double * p2;

p1 = new_d_array(5, 1.2, 2.3, 3.4, 4.5, 5.6);
p2 = new_d_array(4, 100.0, 20.00, 8.08, -1890.0);
show_array(p1, 5);
show_array(p2, 4);
free(p1);
free(p2);

return 0;

}

void show_array(const double ar[], int n)
{
int i;
for(i=0; i<n; i++)
printf("%gt", ar[i]);
printf("n");
}

double * new_d_array(int n, ...)
{
double *p;
int i;
va_list ap;
p = (double *) malloc(n*sizeof(double));
va_start(ap, n);
for(i=0; i<n; i++)
p[i] = va_arg(ap, double);
va_end(ap);
return p;
}
第二个函数什么意思,我对可变参数也不是很理解,求详解。

解决方案

double * new_d_array(int n, ...)
创建一个double类型的数组,返回数组起始地址,n是数组元素个数,后面是给各个元素初始化。
va_list的用法:

http://baike.baidu.com/link?url=coIuMPrBb5jwazoLWLgATsaEtvHxf8fDmTB-KKin2dg5ORYhOxEVW0EEVBnWuCUdrozNAoMy5RiO5iCLIxvj7_

解决方案二:

可变参数函数,上百度搜搜

解决方案三:

double * new_d_array(int n, ...)
创建一个double类型的数组,返回数组起始地址,n是数组元素个数,后面是给各个元素初始化。
va_list的用法:

http://baike.baidu.com/link?url=coIuMPrBb5jwazoLWLgATsaEtvHxf8fDmTB-KKin2dg5ORYhOxEVW0EEVBnWuCUdrozNAoMy5RiO5iCLIxvj7_

解决方案四:

double * new_d_array(int n, ...)
创建一个double类型的数组,返回数组起始地址,n是数组元素个数,后面是给各个元素初始化。
va_list的用法:

http://baike.baidu.com/link?url=coIuMPrBb5jwazoLWLgATsaEtvHxf8fDmTB-KKin2dg5ORYhOxEVW0EEVBnWuCUdrozNAoMy5RiO5iCLIxvj7_

时间: 2024-07-30 14:33:23

malloc-这个c程序什么意思啊,特别是第二个函数什么意思?的相关文章

c语言-C语言内存分配malloc导致的程序退出

问题描述 C语言内存分配malloc导致的程序退出 char *p; while (1) { p = malloc(1); *p = 0; } 这样写最后是因为没有内存退出还是向0写入退出?怎么感觉是内存完了 解决方案 内存分配失败就会返回空指针 解决方案二: 堆内存被使用完后,在申请就睡失败,p就是NULL,即地址为0写入,而这个地址是受程序保护的,无法写入因此退出 解决方案三: 个人觉得你这个应该是会导致堆内存不够,导致程序异常退出

c语言-求解C程序问题,f(r)后第二个printf结果为何是3,3,3呢?

问题描述 求解C程序问题,f(r)后第二个printf结果为何是3,3,3呢? #include int k=7,m=5void f(int **s){ int t=&k; _ _s=&t; _ _*s=&m; _ _printf("%d,%d,%d,",k,*t,*s);} main(){ int i=3,*p=&i,**r=&p; f(r); printf("%d,%d,%dn",i,*p,**r);} /*VC++程序运

java-请问以下程序 导出后第一天能用 第二天就只能打开窗口,线程部分就不能用了,求教

问题描述 请问以下程序 导出后第一天能用 第二天就只能打开窗口,线程部分就不能用了,求教 package project7;import java.awt.*; import java.util.*; import java.awt.event.*; import javax.swing.*;public class Class1{ JButton jb; JTextArea jta; public static void main(String[] args) { JButton jb=new

orcale-编写程序包(计算器),其中有四个函数分别实现两个数的加减乘除。

问题描述 编写程序包(计算器),其中有四个函数分别实现两个数的加减乘除. 麻烦大神看下这个该怎么做,只有一个的话,return两数相加,这个加减乘除都要有,就不知道怎么办了 解决方案 都要有就再加一个参数,传运算符.用switch...case判断下. 解决方案二: 我想我明白你的意思了,你是想通过一个函数.计算出四个值,并且一次性返回四个值,是么? 可以参考以下代码: #include // 当然,你也可以不用结构体,定义一个数组也是可以的(例:数组的第一个值表示和,第二个值表示差......

c++-C++程序怎样调用软件R包里的函数

问题描述 C++程序怎样调用软件R包里的函数 5C 要写一个空间统计的C++程序,软件R里有这样的函数,想在C++程序里调用这个函数,有什么方式?有什么生成动态链接库之类的方法,谢谢! 解决方案 R软件附加绘制函数 解决方案二: 你看一下计算机图形学中的openGL函数看能不能解决

通讯录-如何在此程序中添加上输出全部数据的函数

问题描述 如何在此程序中添加上输出全部数据的函数 #include "stdio.h" #include "stdlib.h" #include "string.h" /*定义学生结构体*/ struct Student { char ID[20]; char Name[20]; char phone[20]; char address[20]; char QQ[20]; }; /*声明学生数组及学生数量*/ struct Student stu

mfc-MFC多文档程序,专门的计算处理用的函数应放在哪?

问题描述 MFC多文档程序,专门的计算处理用的函数应放在哪? 我的MFC多文档程序,有一些算法.计算.处理数据的一些函数.传入的参数就是普通的CString.int什么的.和视图.文档什么的无关.我想到的是两种,第一种,专门建一个类,将这些函数放在新类中,加static声明:第二种就是放在doc类中,调用的时候就GetDocument获取指针再调用. 从开发的规范性来讲,怎样做显得不low? 解决方案 MFC多文档常用函数

怎么在 python程序编辑中自动加载库中函数或类中的成员??

问题描述 怎么在 python程序编辑中自动加载库中函数或类中的成员?? 在使用import引用系统模块时 如import(sys)中的函数 如:print(sys.path) 调用path函数 在写程序时想写sys . 后自动出现sys中所有的 成员 就像C#或java 中编辑代码一样 我用的是editPlus 编辑器 是不是要安装插件之类的 解决方案 不如直接用python tools for visual studio 解决方案二: 可以试试pycharm编辑器.功能比较强大,目前最好的编

xll+-如何在一个XLL+ 程序中call另外一个XLL+中的函数

问题描述 如何在一个XLL+ 程序中call另外一个XLL+中的函数 大家好,我的问题是,如何在一个XLL+程序中call另外一个XLL+中的函数. 我已经编好并运行成功了一个XLL+ user defined function,函数为sum1,在excel中加入这个add in以后,可以用sum1函数进行运算.现在我开始编写另外一个XLL,e.g.sum2,而在sum2程序中我想直接call sum1函数,然后由于两个函数在两个不同的XLL中,不能直接call,因此需要进行一定的处理才行.请问