У меня есть тип даты, определенный как typedef char* DateTime; формат "дд/мм/гггг-чч:мм", например. "08.08.2012-12:00"
и я хочу выделить n строк, которые являются «датами». Что не так со следующим?
DateTime* dates = (DateTime* ) malloc(sizeof(char*) * n);
for (int i = 0; i <= n; i++) {
dates[i] = malloc(sizeof(char)*16);
if (dates[i] == NULL) {
free(dates);
return NULL;
}
}
sizeof(DateTime *)
при первом вызовеmalloc
. Или, что еще лучше, поскольку это строки, вообще не создавайтеtypedef
, а везде используйте простыеchar *
. - person Some programmer dude   schedule 09.08.2012malloc(sizeof(char*))
вместоmalloc(sizeof(*dates))
не очень хорошая идея. Кастинг возврата malloc тоже неверен. stackoverflow.com/questions/605845 / - person Eregrith   schedule 09.08.2012