#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct {
char* m_pString ;
size_t m_iSize ;
} String;
String* String_new(int size) {
String* pString = malloc(sizeof(String));
pString->m_iSize = size;
pString->m_pString = malloc((pString->m_iSize + 1) * sizeof(char));
pString->m_pString[0] = 0;
return pString ;
}
void String_delete(String* p) {
free(p->m_pString);
free(p);
}
int main(void)
{
String *p = String_new(16);
strcpy(p->m_pString, "c programming");
puts(p->m_pString);
printf("%ld\n", strlen(p->m_pString));
printf("%ld\n", p->m_iSize);
String_delete(p);
return 0;
}
/*
run:
c programming
13
16
*/