在C中类型转换双指针

0aslam0

我无法在参数传递过程中发现此错误。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef char my_char;

void myfunc(const my_char** data)
{
    printf ("%s\n", *data);
    printf ("%s\n", *(data + 1));
}

int main(){

    char **mydata;
    mydata = malloc(sizeof(char*)*2);
    mydata[0] = malloc(sizeof(char)*50);
    mydata[1] = malloc(sizeof(char)*50);

    memset(mydata[0],'\0',50);
    memset(mydata[1],'\0',50);
    strcpy (mydata[0], "Hello");
    strcpy (mydata[1], "world");

    myfunc((my_char**)mydata);

    free (mydata[0]);
    free (mydata[1]);
    free (mydata);

    return 0;
}

它正常工作。但是当我显式键入参数时发出警告。为什么会这样呢?显示的警告是:

warning: passing argument 1 of ‘myfunc’ from incompatible pointer type

据我所知,类型转换应该可以帮助编译器理解指针所保持的数据类型。但是这里根本没有帮助。

卡尔提克扬

使用const而类型转换数据类型。

myfunc((const my_char**)mydata);

您正在const通过函数获得该值

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

转换双指针以及如何在C中使用

来自分类Dev

无法转换为C中的指针类型套接字编程

来自分类Dev

C ++双指针转换

来自分类Dev

来自c中的双指针的Memcpy

来自分类Dev

C ++中指针类型转换的说明

来自分类Dev

类型转换整数以指向C中的整数指针

来自分类Dev

在C中释放双指针

来自分类Dev

C ++双指针多态

来自分类Dev

指针类型的C ++隐式转换

来自分类Dev

“无法转换为指针类型” C

来自分类Dev

双指针作为C中的参数

来自分类Dev

C ++中指针的类型转换和类型转换

来自分类Dev

为什么在C中将指针转换为双指针?

来自分类Dev

转换双指针以及如何在C中使用

来自分类Dev

C中的类型转换指针

来自分类Dev

C打印双精度类型的指针值不起作用

来自分类Dev

类型转换与指针转换

来自分类Dev

指针类型转换,如python中的c

来自分类Dev

类型转换C指针以访问原始内存

来自分类Dev

Java中的类型转换(双精度/双精度)

来自分类Dev

C指针转换:单int指针到双char指针

来自分类Dev

C ++将数字转换为类型的指针?

来自分类Dev

Delphi中的类型转换指针添加

来自分类Dev

C ++中的双指针数组

来自分类Dev

c中的指针转换

来自分类Dev

在 C 中使用指针进行类型转换

来自分类Dev

c 中指针的类型转换

来自分类Dev

在 C 中连接双指针字符数组

来自分类Dev

在c中释放双指针的干净方法