我正在尝试从main访问一个带有指向整数的指针的结构。但程序崩溃了。它需要使用“std = c99”选项构建,因为它是测试中的要求。
代码如下:
#include <stdio.h>
#include <malloc.h>
struct Results{
int *A;
int N;
};
struct Results solution(int A[], int N, int K) {
struct Results result;
// write your code in C99 (gcc 4.8.2)
int* T = (int*) malloc(N*sizeof(int));
result.A = A;
result.N = N;
int count = 0;
while(count < K)
{
for(int i = 0; i < N; i++)
{
if(i > 0)
{
T[i] = A[i-1];
}
else
{
T[0] = A[N-1];
}
}
count++;
for(int i = 0; i < N; i++)
{
A[i] = T[i];
}
};
for(int i = 0;i < N; i++)
{
A[i] = T[i];
}
return result;
}
struct Results solution(int A[], int N, int K);
void main()
{
int B[5] = {3,8,9,7,6};
struct Results st;
solution(B,sizeof(B),1);
}
问题在于: “解决方案(B,sizeof(B),1);” 我做错了什么?
请帮忙。
答案 0 :(得分:3)
您看到sizeof(B)
会将B
的元素数量设为int
的倍数,而是使用sizeof(B) / sizeof(B[0])
。