首页 文章

返回malloc()函数

提问于
浏览
0

据说malloc()函数返回一个空指针或指向已分配空间的指针 . 假设我们创建一个字符串:

char* ptr =  malloc(size)

是不是 ptr 指向指针的指针?
不是:

char** ptr = malloc(size)

应该是声明指向char的正确方法?

但是,当我们执行任何操作时,编译器都不会发出警告,它给出的警告是格式说明符(如果使用的话) .

我们该如何宣布这个以及为什么?另外,如何使用char **?

3 回答

  • 1

    char * 表示一个char指针 . Malloc将返回一个 void * 指针(它将自动转换为您尝试分配的任何指针) .

    char ** 表示 char * 指针 . 这是指向指针的指针 .

    如果您将指针视为 Map ,那么 char * 是一个char的 Map , void * 是一个神秘的 Map , char ** 是另一个导致char的 Map 的 Map . 所以

    char* ptr = malloc(size);
    

    是正确的,因为你想要一个 Map 到某个东西,而不是 Map 到 Map .

  • 4

    不,'ptr'将包含'malloc'返回的指针 . 您正在分配返回的指针,而不是其地址 .

  • 3
    • *ptr 是指向char的指针,它通常用于管理数组或字符串 .

    • **ptr 是指向char的指针,通常用于指向char
      管理矩阵(数组数组)或字符串数组 .

相关问题