Настоящий вопрос в том, что вам нужно. Если вы определяете свою собственную структуру данных, вы должны управлять всеми аспектами того, что вы делаете - если вам нужно переменное количество записей, вам нужно управлять этим пространством с помощью malloc / free / realloc. Если вы хотите хранить данные на диске, вам нужно написать код для чтения и записи структур. Если вы хотите проиндексировать данные, вам нужно написать код для индексации и т. Д.
В обмен на это вы получаете действительно быстрый доступ, особенно если ваши потребности действительно просты (например, небольшое фиксированное количество идентичных записей, так что вы можете легко использовать массив структур).
Использование базы данных более или менее обращает их вспять - вы получаете гораздо больше гибкости для работы с переменными типами данных, большего количества данных, чем вы хотите в памяти, транзакций ACID, построения индексов на лету и т. Д. В обмен на это вы, вероятно, в конечном итоге получите больше кода для выполнения вещей, которые вам могут не понадобиться, и более медленное выполнение - особенно если вы храните достаточно мало данных, чтобы они все могли поместиться в памяти.