c和指针 动态数组实现

简介:
复制代码
/**
c和指针 第11章 第二题
从标准输入中读取一系列的整数,
把这些值存储在一个动态分配的数组中
并返回这个数组。数组的第一个元素是该数组的长度
其他元素是输入的整数
*/
#include <stdio.h>
#include <stdlib.h>
//定义一个长度,最开始时分配的长度
#define LENGTH 20

int *read_ints()
{
    int *num;
    int tem;
    int count = 0;
    int size = LENGTH;

    //分配内存
    num = malloc((size+1)*sizeof(int));
    //内存分配失败,返回NULL
    if(num==NULL)
    return NULL;

    while(scanf("%d",&tem)!=EOF)
    {
        count++;
        //如果长度大于分配的内存,则需要增加内存,使用realloc分配
        if(count>size)
        {
            size += LENGTH;
            num = realloc(num,(size+1)*sizeof(int));
            if(num==NULL)
            return NULL;
        }
        num[count] = tem;
    }
    if(count<size)
    {
        num = realloc(num,(count+1)*sizeof(int));
        if(num==NULL)
        return NULL;
    }
    num[0] = count;
    return num;
}

int main()
{

    int *array;
    int i;
    array = read_ints();
    for(i = 1;i<=array[0];i++)
    printf("%d ",array[i]);
    return 0;
}
复制代码













本文转自NewPanderKing51CTO博客,原文链接: http://www.cnblogs.com/newpanderking/archive/2012/08/24/2653764.html  ,如需转载请自行联系原作者
相关文章
|
存储 程序员 编译器
C++使用指针,动态数组,指针做参数需要注意的问题等总结
C++使用指针,动态数组,指针做参数需要注意的问题等总结
C++使用指针,动态数组,指针做参数需要注意的问题等总结
指针部分,建立动态数组
指针部分,建立动态数组
92 0
|
Perl
指针部分,建立动态数组
#include #include void check(int *p[]) { int i; printf("没及格的成绩有:\n"); for(i=0;i
890 0
|
17天前
|
C语言
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
|
1月前
|
存储 程序员 编译器
爱上C语言:指针很难?来来来,看看这篇(基础篇)
爱上C语言:指针很难?来来来,看看这篇(基础篇)
|
6天前
|
C语言
c语言指针总结
c语言指针总结
12 1
|
17天前
|
存储 C语言
指针深入解析(C语言基础)带你走进指针,了解指针
指针深入解析(C语言基础)带你走进指针,了解指针
|
17天前
|
C语言 C++
C语言:指针运算笔试题解析(包括令人费解的指针题目)
C语言:指针运算笔试题解析(包括令人费解的指针题目)
|
19天前
|
安全 C语言
指针与字符串:C语言中的深入探索
指针与字符串:C语言中的深入探索
15 0
|
20天前
|
存储 监控 C语言
c语言的指针
c语言的指针
22 0

热门文章

最新文章