串的堆分配存储
时间:2010-09-27 来源:huabinbin00
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
enum Status {ERROR,OK,TRUE,FALSE,OVERFLOW};
typedef struct
{
char *ch;
//若是非空串,则按串长分配存储区,否则ch为NULL
int length; // 串长度
} HString;
Status StrAssign(HString *T,char *chars)
{ /* 生成一个其值等于串常量chars的串T */
int i,j;
if((*T).ch)
free((*T).ch); /* 释放T原有空间 */
i=strlen(chars); /* 求chars的长度i */
if(!i)
{ /* chars的长度为0 */
(*T).ch=NULL;
(*T).length=0;
}
else
{ /* chars的长度不为0 */
(*T).ch=(char*)malloc(i*sizeof(char)); /* 分配串空%
#include "stdio.h"
#include "stdlib.h"
enum Status {ERROR,OK,TRUE,FALSE,OVERFLOW};
typedef struct
{
char *ch;
//若是非空串,则按串长分配存储区,否则ch为NULL
int length; // 串长度
} HString;
Status StrAssign(HString *T,char *chars)
{ /* 生成一个其值等于串常量chars的串T */
int i,j;
if((*T).ch)
free((*T).ch); /* 释放T原有空间 */
i=strlen(chars); /* 求chars的长度i */
if(!i)
{ /* chars的长度为0 */
(*T).ch=NULL;
(*T).length=0;
}
else
{ /* chars的长度不为0 */
(*T).ch=(char*)malloc(i*sizeof(char)); /* 分配串空%
相关阅读 更多 +