请教一个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;
}
错在哪里了呢? 改成char hostname_ftp;之类的 就是说在声明的时候必须制定长度是吗?是什么道理呢? 目标指针是野指针。 xxx_ftp 都是野指针,它们没有指向有效的存储空间。 这个,基本功要练练 谢谢各位的回复。 char *hostname_ftp; 相当于声明了 门牌号,不过尚未建造房子
strcpy(hostname_ftp,hostname); 相当于向房子中搬运东西,这时当然会出现错误了。
ljmmail 发表于 2016-07-13 23:11 static/image/common/back.gif
char *hostname_ftp; 相当于声明了 门牌号,不过尚未建造房子
strcpy(hostname_ftp,hostname); 相当于 ...
说的好形象,太感谢了 回复 1# wind_133
指针没有有分配空间啊。
页:
[1]
2