/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
for (int i = 0; i < numsSize; i++) {
for (int j = i + 1; j < numsSize; j++) {
if (nums[i] + nums[j] == target) {
int* ret = malloc(sizeof(int) * 2);
ret[0] = i, ret[1] = j;
*returnSize = 2;
return ret;
}
}
}
*returnSize = 0;
return NULL;
}
另外,一个函数调用数组需要知道两个指针(指向开始和结尾)或知道开始还有一个表示长度的整型,但是用指针返回数组呢?如何返回一个让编译器知道长度的数组呢?难道是像字符串那样一直读取直到'\0'吗?那么调用的时候就只需要知道开始就好了。我不明白。