易截截图软件、单文件、免安装、纯绿色、仅160KB

从函数返回一个数组的2种方法 (C专家编程 p230)

严格来说,无法从函数返回一个数组,但可以从函数返回一个指向任何数据结构的指针,包括一个指向数组的指针。
一种方式如下:
#include <stdio.h>
#include <stdlib.h>
int (*func())[20];//func是一个函数,它返回一个指向包括20个int元素的数组的指针
int main(void)
{
        int (*result)[20];
        int i = 0;
        result = func();
        for(i = 0; i < 20; i++){
                printf("%d\n", (*result)[i]);
        }
        free(result);
        exit(0);
}
int (*func())[20]
{
        int (*a)[20];
        int i = 0;
        a = calloc(20, sizeof(int));
        if(a == NULL){
                perror("calloc error");
                exit(1);
        }
        for(i = 0; i < 20; i++){
                a[0][i] = i;
        }
        return a;
}
千万要注意:不能从函数中返回一个指向函数的局部变量的指针。
另一种方式如下:
#include <stdio.h>
#include <stdlib.h>
struct tag{
        int array[20];
}x, y;
struct tag func(void);
int main(void)
{
     &n


相关文档:

SQLite C/C++接口介绍

这篇文章是使用SQLite C/C++接口的一个概要介绍和入门指南。
由于早期的SQLite只支持5个C/C++接口,因而非常容易学习和使用,但是随着SQLite功能的增强,新的C/C++接口不断的增加进来,到现在有超过150个不同的API接口。这往往使初学者望而却步。幸运的是,大多数SQLite中的C/C++接口是专用的,因而很少被使用到。尽管有这 ......

将类成员函数用作C回调函数

将类成员函数用做C回调函数
提出问题:
    回调函数是基于C编程的Windows SDK的技术,不是针对C++的,程序员可以将一个C函数直接作为回调函数,但是如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。
分析原因:
    普通的C++成员函数都隐含了一个传递函数 ......

C/C++是最主要的编程语言,这里列出了50名优秀网站

C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码 。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建 议,以进一步加强这方面的清单。
1、http://snippets.dzone.com/tag/c/ --数以千 ......

c/c++的知识点收集

1.动态获得内存的代码:
void GetMemory(char **p, int num)
{
  *p = (char *)malloc(sizeof(char) * num);
}
char* GetMemory2(int num)
{
  char* p = (char *)malloc(sizeof(char) * num);
  return p;
}
------------------------------------------
错误的代码:
void Ge ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号