学堂 学堂 学堂公众号手机端

在C语言中,可以使用动态内存分配函数malloc()和realloc()来输入未知长度的字符串

lewis 2年前 (2024-01-16) 阅读数 8 #技术

在C语言中,可以使用动态内存分配函数malloc()realloc()来输入未知长度的字符串。首先,可以使用malloc()函数来分配一个初始大小的内存空间来存储字符串,然后使用realloc()函数来根据需要调整内存空间的大小。

以下是一个示例代码:

#include<stdio.h> #include<stdlib.h> #include<string.h> intmain(){ char*input=(char*)malloc(100);//初始分配100个字节的内存空间 char*temp; intlen=0; if(input==NULL){ printf("内存分配失败\n"); return1; } printf("请输入字符串:\n"); while(1){ if(len>=100){ //调整内存空间大小 temp=(char*)realloc(input,len+10); if(temp==NULL){ printf("内存分配失败\n"); free(input); return1; }else{ input=temp; } } //逐字符读取输入 input[len]=getchar(); if(input[len]=='\n'){ input[len]='\0'; break; } len++; } printf("输入的字符串为:%s\n",input); free(input); return0; }

在这个示例代码中,首先使用malloc()函数分配了一个初始大小为100字节的内存空间来存储字符串。然后在一个循环中逐字符读取输入的字符串,并根据需要使用realloc()函数调整内存空间的大小。当输入结束时,打印出输入的字符串并释放内存空间。


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门