永发信息网

malloc与二重指针的问题

答案:1  悬赏:0  手机版
解决时间 2021-01-03 20:24
  • 提问者网友:留有余香
  • 2021-01-03 04:05
如下:
struct node **ptr=(struct node **)malloc(m*sizeof(struct node));
这句话的意思是不是先用malloc开辟一块内存空间,然后让(*ptr)指向这块内存,而ptr是这块内存指针的指针?
此时ptr[0],ptr[1]....ptr[m-1]是指针数组吧?
最佳答案
  • 五星知识达人网友:独行浪子会拥风
  • 2021-01-03 04:27
这行代码执行的结果是 ptr 指向这块内存, *ptr指向这块内存第一个内存位置的内容指向的内存位置。

如果你想用malloc为二重指针申请内存, 需要分两次执行
node *ptr=(node *)malloc(m*size);
node **pptr=(node **)malloc(m*sizep);
for(i = 0; i < m; i++) {
pptr[i] = ptr + i;
}
此时pptr[0],pptr[1]....pptr[m-1]是指针数组
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯