【发布时间】:2021-07-18 15:40:32
【问题描述】:
我有
char filemem[14], *file, *path;
file = strcpy(filemem,"/path/to/file");
path = file - 4;
我想要char *path = file - 4,这样char *path 只能读取/path/to/。是否可以显示指针的一部分而不必将字符串的副本创建到另一个内存中
【问题讨论】:
-
char *file = /path/to/file;不是有效的 C 代码。 -
如果可以修改字符串,可以在
/path/to/之后的位置分配一个空字节 -
不,这是不可能的,如果您希望两个字符串都有效或字符串不可修改(例如字符串文字)。
-
首先考虑单独保留文件夹路径。
-
是的,它依赖于知道文件名的最大长度。而
strcpy返回目标指针,所以path = file - 4;(即filemem - 4)没有用处。