数组容量溢出怎么办
题目要求输入一个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); }