我在下面列出了代码。如果我定义ARR_SIZE太多(例如 820),则会出现分段错误错误。但是如果ARR_SIZE不是那么大(例如 320),代码就可以工作。
GDB仅在int main().
我认为问题出在二维数组的初始化阶段,但不确定。
#include "stdio.h"
#include "time.h"
#include "stdint.h"
#define ARR_SIZE 820
#define TICK(X) clock_t X = clock()
#define TOCK(X) printf("time %s: %g sec.\n", (#X), (double)(clock() - (X)) / CLOCKS_PER_SEC)
void copyji(int src[ARR_SIZE][ARR_SIZE], int dst[ARR_SIZE][ARR_SIZE]){
int i, j;
for (j = 0; j < ARR_SIZE; j++)
for (i = 0; i < ARR_SIZE; i++)
dst[i][j] = src[i][j];
}
void copyij(int src[ARR_SIZE][ARR_SIZE], int dst[ARR_SIZE][ARR_SIZE]){
int i, j;
for (i …Run Code Online (Sandbox Code Playgroud)