我错在哪里#include#include#includeint main( void ){\x05int fan( char *str );\x05char *Hello = "HelloWorld";//这个会出问题\x05char *World = "HelloWorldm";//这个会出问题// \x05char *Hello = (char*)malloc(sizeof(char) * 20);// \x05char
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/18 04:35:31
我错在哪里#include#include#includeint main( void ){\x05int fan( char *str );\x05char *Hello = "HelloWorld";//这个会出问题\x05char *World = "HelloWorldm";//这个会出问题// \x05char *Hello = (char*)malloc(sizeof(char) * 20);// \x05char
我错在哪里
#include
#include
#include
int main( void )
{
\x05int fan( char *str );
\x05char *Hello = "HelloWorld";//这个会出问题
\x05char *World = "HelloWorldm";//这个会出问题
// \x05char *Hello = (char*)malloc(sizeof(char) * 20);
// \x05char *World = (char*)malloc(sizeof(char) * 20);
// \x05scanf("%s%s",Hello,World);
// \x05char Hello[] = "HelloWorld";
// \x05char World[] = "HelloWorldm";
\x05fan( Hello );
\x05fan( World );
\x05printf("Hello = %s\tWorld = %s\n",Hello,World);
\x05
\x05
\x05return 0;
}
int fan( char *str )//反转字符串
{
\x05printf("str = %s\n",str);
\x05int i = 0;
\x05int j = 0;
\x05int blog = 1;
\x05char temp;
\x05int len = strlen( str );
\x05
\x05if ( 0 == len )
\x05{
\x05\x05blog = -1;
\x05}
\x05
\x05for ( i =0,j = len - 1; i < len / 2; i++,j-- )
\x05{
\x05\x05temp = *( str + i );
\x05\x05*( str + i ) = *( str + j );
\x05\x05*( str + j ) = temp;
\x05\x05
\x05}
\x05
\x05return blog;\x05
}
函数功能是反转字符串,但是我表明的那里,编译连接都没问题,运行的时候,直接就崩溃了,我看了VA_X的提示:Refatoving not available on symbol,机翻就是:refatoving不可用的符号
可是我表明的那两行可以输出,用着没有问题,搞到函数里面,就不行了,注释的那两行到可以.这是为什么呢?
我错在哪里#include#include#includeint main( void ){\x05int fan( char *str );\x05char *Hello = "HelloWorld";//这个会出问题\x05char *World = "HelloWorldm";//这个会出问题// \x05char *Hello = (char*)malloc(sizeof(char) * 20);// \x05char
你这是没有分配内存就直接使用 当然会出问题,注释的那两行就是
分配内存的