gpt4 book ai didi

c - 使用双指针返回指针的值

转载 作者:太空宇宙 更新时间:2023-11-04 07:21:37 24 4
gpt4 key购买 nike

代码:

#include<stdio.h>
#include<stdlib.h>
void createAndFillList(int** ptr,int ninput){
int i;
ptr=malloc(sizeof(int)*ninput);
for(i=0;i<ninput;i++){
printf("enter: ");
scanf("%d",&*(*ptr+i));
}
printf("%p\n",&*ptr);
}

int main(){
int** ptr;
int ninput;

printf("enter how many spaces will be allocated:");
scanf("%d",&ninput);

createAndFillList(ptr,ninput);
printf("%p\n", &ptr);

getch();
free(ptr);
return 0;
}

如何返回第一个ptrptr + 0的地址值?我尝试了所有方法,每次输入超过 1 时似乎都会崩溃。

最佳答案

首先你应该在main函数中声明一个普通指针,然后在调用该函数时使用寻址运算符&。然后在函数内部使用指针到指针时使用取消引用运算符 *

所以在 main 中:

int *ptr;

...

createAndFillList(&ptr, ninput);

createAndFillList 中:

*ptr = malloc(sizeof(int) * ninput);
...
scanf("%d", &(*ptr)[i]); /* Or `(*ptr) + i` */

关于c - 使用双指针返回指针的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21215931/

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