读书人

struct的字符变量只能用strcpy()初始化

发布时间: 2012-04-22 18:34:46 作者: rapoo

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会运行错误。

读书人网 >C++

热点推荐