这是我如何malloc一个int var然后在函数外部访问这个var
int f1(int ** b) {
*b = malloc(sizeof(int));
**b = 5;
}
int main() {
int * a;
f1(&a);
printf("%d\n", *a);
// keep it clean :
free(a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
使用上面的相同逻辑,我如何在函数内malloc一个1 dim数组,然后在func之外访问它?
请帮忙,我对指向数组的指针感到困惑.
Set*_*gie 12
以完全相同的方式,但有一些不同的算术.您可以考虑使用一个元素分配数组时现在正在做什么.只需乘以sizeof(int)您希望阵列拥有的元素数量:
int f1(int ** b, int arrsize) {
*b = malloc(sizeof(int) * arrsize);
// then to assign items:
(*b)[0] = 0;
(*b)[1] = 1;
// etc, or you can do it in a loop
}
int main() {
int * a, i;
int size = 20;
f1(&a, size); // array of 20 ints
for (i = 0; i < size; ++i)
printf("%d\n", a[i]); // a[i] is the same as *(a + i)
// so a[0] is the same as *a
// keep it clean :
free(a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)