如果我不放置 printf(" "); 我有以下代码段被违反了,否则它工作正常
void dispersion(float ***plancha_ptr, float ***copiaPlancha_ptr) {
float **plancha = *plancha_ptr;
float **copiaPlancha = *copiaPlancha_ptr;
//Calculo del borde absorbente(superior) y reflectante (inferior)
for(int i = 0; i <= SIZE_Y+1; i++) {
plancha[0][i] = 25;
plancha[SIZE_X+1][i] = plancha[SIZE_X][i];
}
//Calculo de los bordes reflectantes (laterales)
for(int i = 0; i <= SIZE_X+1; i++){
plancha[i][0] = plancha[i][1];
plancha[i][SIZE_Y+1] = plancha[i][SIZE_Y];
}
//Calculo de la dispersion
for(int j = 1; j < SIZE_X+1; j++)
for(int k = 1; k < SIZE_Y+1; k++)
copiaPlancha[j][k] = (plancha[j-1][k-1] +
plancha[j-1][k] +
plancha[j-1][k+1] +
plancha[j][k-1] +
plancha[j][k] +
plancha[j][k+1] +
plancha[j+1][k-1] +
plancha[j+1][k] +
plancha[j+1][k+1]) / 9;
//RESTAURAR PTO DE CALOR
copiaPlancha[X_ORIGIN][Y_ORIGIN] = TEMP;
//INTERCAMBIO DE PUNTEROS PARA EVITAR COPIA DE MATRIZ
float **p;
**p = ***plancha_ptr;
*plancha_ptr = *copiaPlancha_ptr;
//No Tocar, hay que imprimir por pantalla o no funciona
// printf(" ");
//***copiaPlancha_ptr = **p;
return;
}
它不起作用,但如果我取消注释
printf
,它就可以正常工作。我需要帮助。
尝试更改这些行
float **p;
**p = ***plancha_ptr;
到
float **p;
p = *plancha_ptr;
您应该先初始化
p
,然后才能将其取消引用为 **p
。