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;
    }
    



  • 相关阅读:
    2021-4-1 日报博客
    2021-3-31 日报博客
    2021-3-30 日报博客
    2021-3-29 日报博客
    2021-3-27 周报博客
    java
    周末总结六
    java
    java
    java
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4032637.html
Copyright © 2011-2022 走看看