Problema funzione getline C

abaco90
Ciao a tutti, ho il seguente codice che acquisisce una stringa allocata dinamicamente tramite la funzione getline:

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

int main() {

    char *stringa;

    int dimensione = 10, numero_bytes_inseriti;

    stringa = (char*) malloc(dimensione);

    printf("Inserire una stringa\n");
    numero_bytes_inseriti = getline(&stringa, &dimensione, stdin);

    printf("Hai inserito la seguente stringa: %s\n", stringa);

    free(stringa);

    return 0;
}


ma il compilatore mi da il seguente errore:

c:22:47: warning: incompatible pointer types passing 'int *' to parameter of type 'size_t *' (aka 'unsigned long *') [-Wincompatible-pointer-types]
numero_bytes_inseriti = getline(&stringa, &dimensione, stdin);
.................................................................^~~~~~~~~~~
/usr/include/stdio.h:442:56: note: passing argument to parameter here
ssize_t getline(char ** __restrict, size_t * __restrict, FILE * __restri...
............................................................................^
1 warning generated.

A cosa è dovuto?

P.S. ho messo i puntini in modo da evidenziare dove sta l'errore altrimenti con gli spazi non si capiva.

Risposte
vict85
Te lo dice il compilatore: dimensione deve essere un unsigned long o ancora meglio di tipo size_t.

abaco90
Potresti farmi un esempio? Tipo se voglio che la stringa sia lunga 10 caratteri come dovrei fare?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.