我正在尝试用 C 正确处理用户输入,特别是从用户那里读取文件路径时。
然而,我有一些担忧:
- 我如何重构此代码来处理动态内存分配。
- 当长度未知时,应如何正确处理用户输入的动态内存分配?
- 接受用户输入的文件路径最安全的方法是什么?
我当前的代码:
#include <stdio.h>
int main() {
char filePath[1024];
printf("Please provide file to encrypt (File Path): ");
scanf("%1024s", filePath); // Is this safe?
printf("You entered: %s\n", filePath);
return 0;
}
我在微软的网站上找到一个来源,建议我为%s
格式说明符指定一个宽度scanf
(例如,%1024s
而不是%s
),但它仍然是固定大小,我希望它动态分配。