wind_133 发表于 2016-07-12 14:44

请教一个strcpy的问题,程序执行崩溃

目的是想新建一个函数,利用这个函数通过调用strcpy给三个变量赋值,编译出了几个warning但是不报错。编译好的程序执行就崩溃了。

#include"iostream"
#include<string.h>
char *hostname_ftp;
char *username_ftp;
char *password_ftp;
int set_connect_info(char *hostname, char *username, char *password)
{
    strcpy(hostname_ftp,hostname);
    strcpy(username_ftp,username);
    strcpy(password_ftp,password);
    std::cout<<hostname<<std::endl;
    return 0;
}
int main()
{
char *a="dsfdsfldskj";
char *b="cdfdfd";
char *c="iooppp";
set_connect_info(a,b,c);
    return 0;
}


错在哪里了呢?

hellioncu 发表于 2016-07-12 15:05

改成char hostname_ftp;之类的

wind_133 发表于 2016-07-12 17:14

就是说在声明的时候必须制定长度是吗?是什么道理呢?

codechurch 发表于 2016-07-13 09:49

目标指针是野指针。

sevenover 发表于 2016-07-13 10:15

xxx_ftp 都是野指针,它们没有指向有效的存储空间。

bskay 发表于 2016-07-13 12:54

这个,基本功要练练

wind_133 发表于 2016-07-13 14:53

谢谢各位的回复。

ljmmail 发表于 2016-07-13 23:11

char *hostname_ftp;   相当于声明了 门牌号,不过尚未建造房子
strcpy(hostname_ftp,hostname);   相当于向房子中搬运东西,这时当然会出现错误了。

wind_133 发表于 2016-07-14 12:43

ljmmail 发表于 2016-07-13 23:11 static/image/common/back.gif
char *hostname_ftp;   相当于声明了 门牌号,不过尚未建造房子
strcpy(hostname_ftp,hostname);   相当于 ...

说的好形象,太感谢了

a742794196 发表于 2016-07-20 16:58

回复 1# wind_133


    指针没有有分配空间啊。
页: [1] 2
查看完整版本: 请教一个strcpy的问题,程序执行崩溃