Com uma estrutura como a seguinte
typedef struct
{
size_t StringLength;
char String[1];
} mySTRING;
e uso desta estrutura ao longo destas linhas
mySTRING * CreateString(char * Input)
{
size_t Len = strlen(Input);
int Needed = sizeof(mySTRING) + Len;
mySTRING * pString = malloc(Needed);
:
strcpy(pString->String, Input);
}
resultados, no compilador Red Hat Linux cc, no aviso a seguir, o que é justo.
strings.c:59:3: warning: âstrcpyâ writing 14 bytes into a region of size 1 overflows the destination [-Wstringop-overflow=]
strcpy(pString->String, Input);
Eu sei que, nesta instância do código, este aviso é algo que não preciso corrigir. Como posso dizer isso ao compilador sem desligar esses avisos que podem encontrar algo útil, em algum outro lugar, no futuro.
Que alterações posso fazer no código para mostrar ao compilador que isso está correto?