0
我想解決從Hackerrank熱身挑戰非常微不足道的練習。通過指針和數組引用的對象
下面是代碼:
#include <math.h>
#include <stdio.h>
int* solve(int a0, int a1, int a2, int b0, int b1, int b2, int *result_size)
{
// Complete this function
int r[2];
r[0] = 0;
r[1] = 0;
if(a0 > b0)
r[0] += 1;
else if(a0 < b0)
r[1] += 1;
if(a1 > b1)
r[0] += 1;
else if(a1 < b1)
r[1] += 1;
if(a2 > b2)
r[0] += 1;
else if(a2 < b2)
r[1] += 1;
//p = r;
*result_size = 2;
printf("The one %i and the two %i : \n", r[0],r[1]);
return r;
}
int main()
{
int a0;
int a1;
int a2;
scanf("%d %d %d", &a0, &a1, &a2);
int b0;
int b1;
int b2;
scanf("%d %d %d", &b0, &b1, &b2);
int result_size;
int* result = solve(a0, a1, a2, b0, b1, b2, &result_size);
printf("The ptr one %i and the ptr two %i : \n", result[0],*(result + 1));
int i;
for(i = 0; i < 2; i++)
printf("%i ", result[i]);
printf(" result_size %i \n ", result_size);
int result_i;
for(result_i = 0; result_i < result_size; result_i++)
{
if(result_i)
{
printf(" ");
}
printf("%i", result[result_i]);
}
// puts("");
return 0;
}
我得到的函數內部和主函數中一個很好的結果。但是當我嘗試迭代for循環中的「solve function」返回的數組時,它看起來像我正在獲取被引用對象的地址,而不是它的實際內容。我做錯了什麼?
你的好結果是什麼,期望的輸出是什麼? –
您正在返回本地變量的地址。 –