gpt4 book ai didi

c - 如何打印void**的内存地址?

转载 作者:行者123 更新时间:2023-11-30 20:23:27 26 4
gpt4 key购买 nike

我正在尝试打印 void** 内的 void* 内存地址,如下所示:

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

int main(){

void** MyArray = malloc(500 * sizeof(void*));
printf("Last pointer: %p\n", *MyArray[499]);
free(MyArray);
return 0;

}

但是当我尝试编译时,我收到警告和错误:

  1. Line: 6 Col: 31 in D:\C\test.c [Warning] dereferencing 'void *' pointer
  2. Line: 6 Col: 2 in D:\C\test.c [Error] invalid use of void expression

我做错了什么?谢谢

最佳答案

你分配内存来保存一个数组来保存一堆void指针。该数组尚不包含任何指针。如果您想要数组中最后一个位置的地址,请执行以下操作:

int main(){
void** MyArray = malloc(500 * sizeof(void*));
printf("Last pointer is located at: %p\n", (void *)&(MyArray[499]));
free(MyArray);
return 0;

}

关于c - 如何打印void**的内存地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36185199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com