串的堆分配存儲結構
串的堆分配存儲,其具體實現方式是采用動態數組存儲字符串。
通常,編程語言會將程序占有的內存空間分成多個不同的區域,程序包含的數據會被分們別類並存儲到對應的區域。拿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語言中文網
串的堆分配存儲結構