c - C中char**的动态分配

标签 c dynamic-memory-allocation

我有一个日期类型定义为 typedef char* 日期时间; 格式为“dd/mm/yyyy-hh:mm”,例如“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;
    }
}

最佳答案

for (int i = 0; i <= n; i++) {
                   ^

在 C 中,数组从 0 开始,因此无法访问 dates[n]。删除 =

关于c - C中char**的动态分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11884008/

相关文章:

内联汇编的兼容性 -\n\t 与 ;

C++ - 动态内存分配需要的内存

c - 在 C 中拆分字符串

calloc/malloc 并读取奇怪的行为?

c++ - 如何计算动态内存请求是否会导致无效分配

c - 阻止用户在数组中输入超过指定数量的元素?

c - 发送MQTT包

c - 释放分配给 char* (由 `malloc` 分配)的 int* 是否会调用未定义的行为?

c - 为什么if语句返回true?