永发信息网

哪位兄弟帮忙看看这个程序?

答案:3  悬赏:50  手机版
解决时间 2021-05-09 19:51

我想实现的功能要说也不难 : 从终端接收输入的字符, 每输入一个字符后, 为其动态分配一个字节的空间来保存, 以此类推...若输入的字符为 '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

}
}

最佳答案
*p = realloc(*p, (sizeof (char)) * (pos+1));
这句改成
*p = (char*)realloc(*p, (sizeof (char)) * (pos+1));

加个转换就编译通过了,运行了下似乎没问题,是不是这个问题?
全部回答

#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 =(char *) realloc(*p, (sizeof (char)) * (pos+1)); if (*p == NULL) { break; } temp = *p; *(temp + pos) = ch; pos++; #endif } }

*p = realloc(*p, (sizeof (char)) * (pos+1)); 这句改成*p = (char*)realloc(*p, (sizeof (char)) * (pos+1));

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
救救我乖乖吧.
炫舞咋点亮图标
飞行岛最近会更新吗?
左脚踝骨折打入钉子后,拿出来了,请问下有什
如果重新来过你会不会,时间如果可以重新来过
高积分求个《神魔大陆》激活码
宏生堂药房在什么地方啊,我要过去处理事情
为什么我每次打深渊都不能打出粉装呢?
为什么企鹅的肚皮是白色的?
请问下我的DNF号为什么进不去?
玄幻言情都市小说。。
什麽牌子的化装品祛斑效果好。
为什么冰箱冻的住肉却冻不住雪糕?
关于《一起又看流星雨》的问题
东湖学校什么时候开的?
推荐资讯
上个自习回来,C盘缩水3个G?!
1994年农历6月11、星座
qq年费黄钻每日礼包于普通黄钻每日礼包冲突吗
小强鱼丸我想知道这个在什么地方
西城茶行我想知道这个在什么地方
当好学生和坏学生有什么差别呢?
简初咖啡民园店这个地址在什么地方,我要处理
请问这是用什么画的?
新兴茶庄(花山路)在什么地方啊,我要过去处理
好听的DJ进来
请问谁知道什么地方有左撇子专业店
豆瓣酱制作发酵之后怎么做,能放水吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?