丙 |使用 sizeof() 查找 void 指针指向的值的大小

标签 c pointers sizeof void void-pointers

我正在尝试使用 sizeof() 来查找 void 指针指向的值的大小,我想用它来打印该值。

这段代码

    int num = 5;
    void *voidPtr;
    voidPtr = #
    printf("%d", sizeof(*voidPtr));

打印,1。 我怎样才能让它打印 4?

如果有任何其他方法可以打印 void 指针的值,请告诉我

提前致谢。

最佳答案

指针的值仅传达对象的起始地址,而不是有关其大小的任何信息。

如果指针是一个完整的类型,它的类型本身就传达了它所指向的对象的大小信息。但是,void 是不完整的,void * 不提供有关其来源的对象大小的信息(可能通过标准 C 的扩展和调试功能除外)。

通常,如果您的程序需要知道 void * 指向的内容的大小,它必须自己跟踪该信息。

关于丙 |使用 sizeof() 查找 void 指针指向的值的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69800271/

相关文章:

c - 结构指针运算符

c - 指针 - 转换为结构指针 + Malloc

c - 关于 sizeof() 和分配的内存

c - pthread 数组 - 线程是否仍处于事件状态?

c - 禁忌搜索算法总是在第二次迭代时崩溃

c - Swift/C 互操作,Swift 中的结构数据更改未在 C 中更新

objective-c - 获取数组的大小

在C中将毫秒转换为日期

c - GProf 输出中缺少函数

c++ - 在C++中使用1-d索引数组访问n-d数组元素的更好方法?