<分区>
我是 C 语言开发的新手,在函数中设置数组值并返回调用方法时遇到问题。函数本身必须返回一个 int 并且数组大小需要是动态的,所以我试图使用指向数组的指针更新原始数组。我的代码如下:
int getArray(TestType *testArray)
{
testArray = malloc(2 * sizeof(TestType));
testArray[0].id = 1;
testArray[0].testFloat = 1.5;
testArray[1].id = 2;
testArray[1].testFloat = 2.5;
printf("getArray element 2 id = %d\n", testArray[1].id);
return 1;
}
void main()
{
TestType *testArray;
int i = getArray(*&testArray);
printf("main element 2 id = %d\n", testArray[1].id);
}
当我运行它时,我得到以下结果:
getArray element 2 id = 2
main element 2 id = 0
我已经看过别处,虽然 c returning an array from a function描述了一个类似的问题,这是处理一个字符数组,而我有一个用户定义的结构,所以不要相信我可以应用相同的解决方案。