数组容量溢出怎么办
题目要求输入一个N,然后输入N*N的二位矩阵,1=<N<=1000,可是好像N>160的时候,数组就溢出了吧。。没有那么大的容量了吧。。该怎么办?
程序代码:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
int **alloc(size_t);
void cleanup(int **, size_t);
int main(void)
{
size_t n, i, j;
int **p2Array;
scanf("%u", &n);
p2Array = alloc(n);
if (p2Array == 0) {
// TODO ...
exit(EXIT_FAILURE);
}
for (i = 0; i < n; ++i)
for (j = 0; j < n; ++j)
scanf("%d", p2Array[i] + j);
// TODO...
cleanup(p2Array, n);
}
int **alloc(size_t n)
{
size_t i;
int **p2Array = calloc(n, sizeof(int *));
for (i = 0; i < n; ++i)
p2Array[i] = memset(calloc(n, sizeof(int)), 0, n * sizeof(int));
return p2Array;
}
void cleanup(int **p2Array, size_t n)
{
size_t i;
for (i = 0; i < n; ++i)
free(p2Array[i]);
free(p2Array);
}