zoukankan      html  css  js  c++  java
  • C和指针 (pointers on C)——第十一章:动态内存分配(下)习题

    1、编写calloc,内部用malloc。

    void *calloc (size_t n, size_t size)
    {
    	char * memory;
    	memory =(char*) malloc(n * size);
    	while( memory != NULL)
    	{
    		char * ptr;
    		ptr = memory;
    		while ( --n >= 0)
    		{
    			*ptr++ = '';
    		}
    	}
    	return memory;
    
    }
    2、编写一个函数,动态存储一列输入的整数。

    #include <stdlib.h>
    
    int * readints()
    {
    	int *array;
    	int value;
    	int length = 1;
    	array = (int *) malloc(length * sizeof(int));
    	if (array == NULL)
    	{
    		return NULL;
    	}
    	while ( scanf_s("%d", &value) == 1)
    	{
    		length++;
    		array =(int *) realloc(array,  length * sizeof(int));
    		if (array == NULL)
    		{
    			return NULL;
    		}
    		array[length-1] = value;
    	}
    }

    3、编写一个函数,动态存储一列输入的char。


    #include "stdlib.h"
    
    char * readstring()
    {
    	char *array;
    	char *ptr;
    	int length = 1;
    	array = (char *) malloc (sizeof(char));
    	gets(ptr);
    	if (ptr == NULL)
    	{
    		exit (EXIT_FAILURE);
    	}
    	while (*ptr != NULL )
    	{
    		length++;
    		array  = (char *) realloc (array , length * sizeof(char));
    		if (array == NULL)
    			exit (EXIT_FAILURE);
    		array[length - 1] = *ptr;
    		ptr++;
    	}
    	//追加一个NUL
    	array  = (char *) realloc (array , (length++) * sizeof(char));
    	if (array == NULL)
    		exit (EXIT_FAILURE);
    	array[length - 1] = '';
    	return array;
    }
    



  • 相关阅读:
    毕业设计后续工作目标
    毕业设计第二周每天工作
    毕业设计第二次本周目标
    毕业设计第一周每天工作
    毕业设计第一次本周目标
    MyEclipse在删除文件后servers报错问题解决
    Tomcat问题解决
    MVC设计模式授权第三方登录
    算法评估
    Spark 配置参数
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4032637.html
Copyright © 2011-2022 走看看