Co znaczy zapis (int*)?

Co znaczy zapis (int*)?

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

M5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 32
0

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

Kopiuj
#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;
}

Marius.Maximus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2202
S4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1268
3

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

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
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.

Marius.Maximus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2202
1

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

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.