【发布时间】:2013-10-09 22:45:18
【问题描述】:
您好,我正在尝试将字符串复制到“word”变量中。 strcpy 需要 char* 类型,而我的“word”变量是 char** 类型。 我该如何实现? 我尝试了以下,但它不起作用。
struct command
{
enum command_type type;
char *input;
char *output;
union
{
struct command *command[2];
char **word;
} u;
};
main(){
...
char* charPtr = "abc";
struct command* cmdPtr;
strcpy(cmdPtr->u.word,charPtr);
...
}
【问题讨论】:
-
您首先分配一些内存,因为其中的未定义行为很猖獗。
-
首先,指向
char的指针不是字符串。如果有的话,它可能是一个字符串数组。其次,在您的代码 sn-p 中,您实际上并未初始化结构指针,因此它指向某个未定义的位置。当您使cmdPtr指向某个有效位置时,您需要初始化结构中的指针in,包括数组中的指针。 -
你只是想让程序编译,还是想也能运行?
-
@DavidHeffernan LOLz,这是一个真棒的问题。
标签: c string pointers struct strcpy