C和指针之动态内存分配之编程练习3
生活随笔
收集整理的這篇文章主要介紹了
C和指针之动态内存分配之编程练习3
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、問題
編寫一個函數,從標準輸入讀取一個字符串,把字符串復制到動態內存分配的內存中,并返回該字符串的拷貝,這個函數不應該對讀入字符串的長度作任何限制!
2、代碼實現
#include <stdio.h>
#include <stdlib.h>#define OFFSET 5char *my_strcpy()
{char *buffer = NULL;//緩沖區的長度int buffer_len = 0;//屏幕字符總長度int all_len = 0;char *p = buffer;int ch;while ((ch = getchar()) != '\n' && ch != EOF){if (all_len >= buffer_len){//再次申請的長度buffer_len += OFFSET;//擴充內存空間buffer = realloc(buffer, buffer_len);//指向剛申請內存空間的空閑地方p = buffer + all_len;}all_len++;*p++ = ch;}
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的C和指针之动态内存分配之编程练习3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C和指针之动态内存分配之(编写callo
- 下一篇: C和指针之动态内存分配之编程练习4