相关疑难解决方法(0)

C中有const吗?

这个问题可能很幼稚,但是:

  • constC中有关键字吗?
  • 从哪个版本?
  • constC和C++ 之间是否存在语义和/或语法差异?

c c++ language-comparisons const

51
推荐指数
5
解决办法
2万
查看次数

constness和指针指针

我对const关键字非常困惑.我有一个函数接受一个字符串数组作为输入参数和一个接受可变数量的参数的函数.

void dtree_joinpaths(char* output_buffer, int count, ...);
void dtree_joinpaths_a(char* output_buffer, int count, const char** paths);
Run Code Online (Sandbox Code Playgroud)

dtree_joinpathsdtree_joinpaths_a在从参数列表构建了一个字符串数组后,在内部调用.

void dtree_joinpaths(char* output_buffer, int count, ...) {
    int i;
    va_list arg_list;
    va_start(arg_list, count);
    char** paths = malloc(sizeof(char*) * count);
    for (i=0; i < count; i++) {
        paths[i] = va_arg(arg_list, char*);
    }
    va_end(arg_list);
    dtree_joinpaths_a(output_buffer, count, paths);
}
Run Code Online (Sandbox Code Playgroud)

gcc编译器给我以下错误消息:

src/dtree_path.c: In function 'dtree_joinpaths':
src/dtree_path.c:65: warning: passing argument 3 of 'dtree_joinpaths_a' from incompatible pointer type
Run Code Online (Sandbox Code Playgroud)

当我改为char** paths = malloc(count);时 …

c pointers const

2
推荐指数
1
解决办法
513
查看次数

标签 统计

c ×2

const ×2

c++ ×1

language-comparisons ×1

pointers ×1