【发布时间】:2015-12-07 15:54:23
【问题描述】:
我正在学习 C,但我仍然是菜鸟。 我正在编写一个程序作为动态内存分配的练习,它从用户那里获取长度未知的文本,并返回没有空格、制表符、特殊字符或数字的文本。 该程序似乎工作正常,只是某些文本似乎因未知原因更改为未知字符。 代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *pstring;
pstring = (char *)malloc( sizeof(char));
char c = '$';
int i = 0;
while(c != '\n')
{
c = getchar();
if(isalpha(c))
{
pstring[i] = c;
realloc(pstring, (i+2)*sizeof(char));
i++;
}
}
int j;
for(j = 0; j < i; j++)
{
printf("%c", pstring[j]);
}
return 0;
}
【问题讨论】:
-
必选:sizeof(char) 为 1 或者你没有使用 C。
标签: c malloc dynamic-memory-allocation realloc calloc