【发布时间】:2016-11-06 08:41:23
【问题描述】:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char *func(char * str){
int len;
len=strlen(str)+3;
str = (char *)realloc(str,len);
return str;
}
void main(){
printf("str:%s",func("hello"));
}
最后的 ans 打印 (null),而不是打印字符串:“hello”。谁能解释为什么会这样? 我无法识别任何错误。 任何人都可以纠正错误,并帮助我提供有效的代码。请!
【问题讨论】:
-
void main(){..难怪.... -
您在无法重新分配的 char * 上调用 realloc。所以它失败了,并返回 NULL。
-
@underscore_d 字符串文字的类型为
char*。 -
任何人都可以纠正错误,并帮助我提供工作代码。拜托!抱歉,您真的花时间阅读给定的答案吗?我们不是来给你写代码的,我们只能给你指路……