#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char * ch;
int length;
}Str; //变长分配存储表示
int strassign(Str * str,char * ch){
if(str->ch){
free(str->ch);
}
int len=0;
char * c=ch;
while (*c)
{
++len;
++c;
}
if (len==0)
{
str->ch=NULL;
str->length=0;
return 1;
}
else{
str->ch=(char *)malloc(sizeof(char)*(len+1));
if(str->ch==NULL){
return 0;
}
else{
c=ch;
for(int i=0;i<=len;++i,++c){
str->ch[i]=*c;
}
str->length=len;
return 1;
}
}
}
int main(void){
Str str;
strassign(&str,"hello world");
char * c=str.ch;
while (*c)
{
printf("%c",*c);
++c;
}
return 0;
}
浙公网安备 33010602011771号