串的堆分配存储,其具体实现方式是采用动态数组存储字符串。
通常,编程语言会将程序占有的内存空间分成多个不同的区域,程序包含的数据会被分们别类并存储到对应的区域。拿C语言来说,程序会将内存分为4个区域,分别为堆区、栈区、数据区和代码区。其中的堆分配
与其他区域不同,堆区的内存空间需要程序员手动使用malloc函数申请,并且在不用后要手动通过free函数将其释放
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char * a1=NULL;
char * a2=NULL;
a1=(char*)malloc(9*sizeof(char));
strcpy(a1,"data.bian");
a2=(char*)malloc(9*sizeof(char));
strcpy(a2,"cheng.net");
int lengthA1=strlen(a1);
int lengthA2=strlen(a2);
if(lengthA1<lengthA1+lengthA2)
a1=(char*)realloc(a1,(lengthA1+lengthA2)*sizeof(char));
for(int i=lengthA1;i<lengthA1+lengthA2;i++)
a1[i]=a2[i-lengthA1];
printf("%s",a1);
free(a1);
free(a2);
return 0;
}
---转载自c语言中文网
原文地址:https://www.cnblogs.com/gufana/p/10352317.html