1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
#include "utils.h"
char * string_new_printf (char * format, ...) {
char tmp_str[_STR_MAX_LEN];
char * ret_val;
va_list args;
int str_len;
va_start (args, format);
str_len = snprintf (tmp_str, _STR_MAX_LEN, format, args);
va_end (args);
if (str_len < 1) {
return NULL;
}
ret_val = malloc ((str_len + 1) * sizeof (char));
memcpy (ret_val, tmp_str, (str_len + 1) * sizeof (char));
return ret_val;
}
|