Estou tentando manipular corretamente a entrada do usuário em C, principalmente ao ler um caminho de arquivo do usuário.
No entanto, tenho algumas preocupações:
- Como refatorar esse código para lidar com alocação dinâmica de memória?
- Como devo lidar corretamente com a alocação de memória dinâmica para entrada do usuário quando o comprimento é desconhecido?
- Qual é a maneira mais segura de aceitar entradas do usuário para caminhos de arquivo?
Meu código atual:
#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;
}
Encontrei uma fonte no site da Microsoft sugerindo que eu especifique uma largura para o %s
especificador de formato em scanf
(por exemplo, %1024s
em vez de %s
), mas ainda é um tamanho fixo e quero que ele seja alocado dinamicamente.