strcpy

strcpy的危险和strncpy

strcpy(char* A, "a long string")
r如果A在申请内存是,长度不足以保存后面的字符串,会把字符串中超出内存的额外部分复制到数组后面的内存字节中,这可能会覆盖程序正在使用的其他内存。所以为了避免这种问题建议使用strncpy,加上复制的最大字节数。

ps: "a long string"实际中是该字符串的地址,一般来说,编译器会在内存中留出一部分空间,以存储程序源代码中所有用引号括起来的字符串,并将其与地址关联起来。如果将其赋值给指针变量,其应该为const,因为字符串字面值是常量。

你可能感兴趣的:(strcpy)