Infinite loop when passing through memory addresses

0

I was making this code whose purpose is to use pointers to fill an array with an arithmetic progression. However, I can not get out of the first loop.

int main() {

    int r, // Razão da PA
    i, // Contadora
    pa[10], // Array que será preenchido pela PA
    *ptrPA; // Ponteiro que vai apontar para o Array

    printf("Digite o primeiro termo da PA: \n");
    scanf("%d", &pa[0]);

    printf("Digite a razão da PA: \n");
    scanf("%d", &r);


    for (ptrPA = &pa[0] + 1; ptrPA <= &ptrPA[9]; ptrPA++) { // O ponteiro vai servir como contador
        *ptrPA = *(ptrPA - 1) + r; // Aplica-se a fórmula de PA para a posição do endereço que o ponteiro aponta
    }

    for (i = 0; i < 10; i++) {
        printf("%d ", pa[i]); // Exibe os valores armazenados
    }

    return 0;
}

What could be causing this? Thank you.

PS: When I try to run the program it closes after I enter the values, and in the eclipse debug it gets stuck in the first loop

    
asked by anonymous 19.03.2016 / 16:26

1 answer

1
for (ptrPA = &pa[0] + 1; ptrPA <= &ptrPA[9]; ptrPA++)
//                                 ^^^^^^^^

should be

for (ptrPA = &pa[0] + 1; ptrPA <= &pa[9]; ptrPA++)
//                                 ^^^^^
    
19.03.2016 / 16:52