【发布时间】:2020-06-22 17:12:42
【问题描述】:
我是 C 编程的新手,我很难理解它的某些方面,包括 strcpy() 函数。
我正在做一些测验,并通过了以下问题:
为保证以下strcpy(d,s)调用的正确性,必须始终满足以下哪个条件:
一个。 sizeof(d) >= strlen(s) + 1
b. sizeof(d) >= sizeof(s)
c。 sizeof(d) >= strlen(s)
d。 strlen(d) >= strlen(s)
e。 strlen(d) >= strlen(s) + 1
经过一番研究,我发现目标字符串的大小应该足够大,以存储复制的字符串。 Source here。这导致我选择 b 或 d。
但是正确答案是“a”,我不明白为什么,也找不到任何文档。有人可以更详细地解释strcpy()的限制是什么吗?
【问题讨论】:
-
d和s是如何声明的,它们都是静态数组还是指针?sizeof不适用于静态和动态数组(例如int a[20]和int* a) -
@Chase,很遗憾我没有这些信息。这是问题中提供给我的所有信息。
标签: c