Hirdetés

Új hozzászólás Aktív témák

  • Gyuri16

    senior tag

    válasz Cicero #2396 üzenetére

    pointerek nem igy mukodnek. ar egy mutato int-re, az erteke egy memoriacim. ha hasznalod a dereferencia operatort, akkor a memoriacimen levo int erteket kapod meg (*ar). mivel te lefoglaltal malloccal 100 int-nyi helyet, ezert a kovetkezo memoriacimekre is biztonsagosan irhatsz a mutato segitsegevel. a c forditoja tudja milyen tipusra mutat a pointer, es hogy az a memoriaban mennyi helyet foglal, ezert probal neked minel jobban segiteni. ha tomb szintaxist hasznalnal akkor az i-edik helyre igy hivatkoznal: ar[i]. ha a pointeres valtozatot hasznalod akkor az elozovel ekvivalens ez: *(ar+i). nem kell a sizeof-fal itt bonyolitani a dolgokat, ezt a fordito megteszi helyetted.

    itt egy peldaprogram:

    #include <stdlib.h>
    #include <stdio.h>

    int main(){
    int i, *ar;
    ar=(int*)malloc(10*sizeof(int));
    for (i=0;i<10;i++) {
    *(ar+i)=i;
    }
    for (i=0;i<10;i++) {
    printf("%d ", *(ar+i));
    }
    return 0;
    }

Új hozzászólás Aktív témák