#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”。任何人都可以请解释为什么是这样吗? 我无法识别任何错误。 任何人都可以纠正错误,并帮助我一个工作代码。请!为什么realloc在这种情况下无法正常工作?
'无效的主要(){..怪不得.... –
你叫realloc的上一个char *不能realloced。所以它失败了,并返回NULL。 –
问题是标签'动态allocation',并且尚未看到有没有...... @WilliamPursell不应该产生这样的警告,或者完全无法编译,用于传递'字符常量*'(字符串类型的文字)到'func()'?我主要是编程C++ 14的所有警告,所以也许我太习惯于良好的类型安全... –