포인터에 100 개의 double 배열을 동적으로 할당하고 1.0에서 100.0 사이의 값으로 메모리를 초기화하는 코드가 있습니다.배열 포인터를 값에 할당하는 동안 배열 포인터를 증가시킬 필요가 없습니다
제 질문은 아래 코드에서 for 루프를 반복 할 때마다 * ptr ++을 써야하는 이유는 무엇입니까? 나는 그것을 시도하고 그것이 작동하지 않습니다.
void allocate_array(){
double *ptr;
ptr= (double*)malloc(sizeof(double)*100);
int i=0;
float j=0.0;
for(i=0;i<100;i++){
*ptr=j++;
printf(" %0.1lf\n",*ptr);
}
}
필요하지 않습니까? '0.0, 1.0, ... '값을 모두 배열의 첫 번째 인덱스에 할당합니다. 그리고 당신은 다른 지표에 어떤 것도 할당하지 않습니다. 그래서 당신은 정말로 원하는 모든 값을 출력하지만 배열은 다음과 같이 보일 것입니다 : {99.0, ???, ???, ...} – Imp
try ptr [i] = j ++; – RolandXu