我想实现的功能要说也不难 : 从终端接收输入的字符, 每输入一个字符后, 为其动态分配一个字节的空间来保存, 以此类推...若输入的字符为 'e' , 则程序结束. 这个功能用一个函数来实现, 在主函数(main)中调用...具体的代码看下面...本来是写了注释的, 要到这里来发, 就把删掉了....以免越弄越混...
写的可能有点乱........呵呵.
#include <stdio.h>
#include <string.h>
#include <malloc.h>
void Malloc(char **p);
int main(int argc, char **argv)
{
char *p = NULL;
size_t size = 0;
int length = 0;
Malloc(&p);
length = strlen(p);
size = _msize(p);
printf("string : %s\n", p);
printf("length : %d\n", length);
printf("size : %d\n", size);
return 0;
}
void Malloc(char **p)
{
char ch;
char *temp = NULL;
int pos = 0;
if (*p != NULL)
{
return;
}
while (scanf("%c", &ch) && (ch != 'e'))
{
#if 0
*p = realloc(*p, (sizeof (char)) * (pos+1));
if (*p == NULL)
{
break;
}
*(*p + pos) = ch;
pos++;
#endif
#if 1
*p = realloc(*p, (sizeof (char)) * (pos+1));
if (*p == NULL)
{
break;
}
temp = *p;
*(temp + pos) = ch;
pos++;
#endif
}
}