Wątek przeniesiony 2023-01-05 08:49 z Kariera przez Patryk27.

Co znaczy zapis (int*)?

0

Mam pytanie, co znaczy (int*) przed funkcja malloc? Czy jest to konieczne? jak usune, program nadal się kompiluje

#include <stdio.h>
#include <stdlib.h>
int main() {
int n = 10;
int *x;
    
    x = (int*)malloc(n*sizeof(int));
    if(x == NULL) {
return -1; }
   
for(int i=0; i<n; i++) { x[i] = i;
}
for(int i=0; i<n; i++) {
        printf("%d\n", x[i]);
    }

free(x);
return 0;
}

3

Jak nie wiesz co to oznacza to zrób dwa kroki do tyłu i przerób dział o wskaźnikach.

9

(int*) rzutuje wynik funkcji malloc z void* na typ zmiennej, int* (nie wpływa to na wartość wskaźnika, jedynie zmienia jego typ); w C jest to technicznie zbędne, bo taka konwersja następuje automatycznie tak czy siak (tzn. istnieje auto-rzutowanie z void* na cokolwiek*), ale niektórzy preferują umieszczanie jej dla czytelności.

1

Czy już nikt nie uczy w podstawach do podstaw dowolnego języka programowania aby formatować kod ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1