麻烦请问下,下面C语言代码的不合理之处是在哪里,谢谢了。
typedef struct{
unsigned int len;
char *data;
}Buffer_T;
void demo(int x){
Buffer_T * buffer = NULL;
buffer = (Buffer_T *)malloc(sizeof(Buffer_T));
buffer->data = (char *)malloc(50);
if (NULL == (buffer->data)){
free(buffer);
return;
}
buffer->len = strlen("hello\n");
strcpy(buffer->data, "hello\n");
if (buffer->len > x)
return;
else{
printf("%d\n", buffer->len);
printf("%s", buffer->data);
}
free(buffer->data);
free(buffer);
return;
}