C和指標 (pointers on C)——第十一章:動態記憶體分配(下)習題

來源:互聯網
上載者:User

標籤: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++ = '\0';}}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++;}//追加一個NULarray  = (char *) realloc (array , (length++) * sizeof(char));if (array == NULL)exit (EXIT_FAILURE);array[length - 1] = '\0';return array;}



C和指標 (pointers on C)——第十一章:動態記憶體分配(下)習題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.