【发布时间】:2014-11-03 12:30:05
【问题描述】:
我正在处理一个动态分配的矩阵。特别是我有这个代码(在 C 中):
int i, n, m;
char **matrix;
matrix = (char **)calloc((n, sizeof(char *));
for (i = 0; i <= n; ++i) {
matrix[i] = (char *)calloc(m, sizeof(char))
}
如果“n”足够小,程序运行良好,但如果我大幅增加它(例如,我取一个接近常量 INT_MAX 的值,在我的情况下 INT_MAX 是 2.147.483.647),我的电脑会死机,我必须重新启动它。我想这个问题与堆最大大小有关。有没有可能以某种方式阻止它?或者你建议给'n'的增长设定一个合理的上限?
提前致谢!
【问题讨论】:
-
顺便说一句
i <= n-->i < n
标签: c matrix dynamic heap-memory calloc