strcpy运行时错误/非空目标

时间:2015-06-23 14:20:23

标签: c string runtime-error strcpy

你能告诉我为什么strcpy会在这里产生运行时错误吗?目标字符串应该为空吗?如果是这样,为什么?

#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[]) {
  char* input = "Nascartestdriver"; // strlen(input) == 16
  char* output = "asdfdhsghsdfasdf"; // strlen(output) == 16

  strcpy(output, input);
  printf("%s\n", output);
  return 0;
}

感谢。

1 个答案:

答案 0 :(得分:0)

因为strcpy()尝试在只读部分写入。