首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

struct的字符变量只能用strcpy()初始化吗?该怎么处理

2012-04-22 
struct的字符变量只能用strcpy()初始化吗?书上说struct的字符变量只能用strcpy()初始化,不能用“”初始化。

struct的字符变量只能用strcpy()初始化吗?
书上说struct的字符变量只能用strcpy()初始化,不能用“=”初始化。于是我自己写了个反例,却编译通过了 怎么回事?

C/C++ code
#include <stdio.h>int main(){    struct human    {        char *name;        int price;    }cpu;    cpu.name="abc";         //书上是这样strcpy(cpu.name,"abc")    printf("%s",cpu.name);}


是书上有错还是我的编译器有错啊

[解决办法]
strcpy的做法是赋值,而不是初始化。但是,在做赋值之前,要记得给那么分配好内存。
[解决办法]
编译器没错,不过你这个代码不够安全。
[解决办法]
先分配内存,才能strcpy
[解决办法]
LZ为什么不用strcpy运行一下呢?如果没有先给成员分配空间的话,用strcpy会运行错误。

热点排行