Muy bien por lo visto estas haciendo una "Tabla" de multiplicar.
Se puede abordar como lo solucionaste. Sin embargo en tu ejemplo queda sin utilizar el elemento 0 de tu arreglo.
Por ejemplo (Un remoto pero posible caso) si vas a guardar en archivo el arreglo
Usando
fwrite(ptr
,sizeof(int),MAX
,archivo
);
Guardarias un ITEM basura (el primero) y omitirias el ultimo
Enonces mejor empezar en el elemento 0 y usar menor que en la comparacion en el while y adicional agregar + 1 en la multiplicación.
#include <stdio.h>
#include <stdlib.h>
#define MAX 150
#define TABLA 5
int main( void ){
size_t i=0;
int *ptr
= (int*)malloc(MAX
* sizeof(int));
while( i<MAX ){
ptr[i] = (i+1)*TABLA;
printf( "\n %2lu x %d = %2d", i
+1, TABLA
, ptr
[i
] ); i++;
}
return 0;
}
Saludos.