Ok, quindi continuo a ricevere questo errore:.gcc dicendo "incarico da incompatibile tipo di puntatore [attivata per impostazione predefinita]
$ gcc -Wall -g translate.c support.c scanner.c -o translate
translate.c: In function ‘main’:
translate.c:22:16: warning: assignment from incompatible pointer type [enabled by default]
dictionary = createArray(count);
^
support.c: In function ‘readTokens’:
support.c:66:18: warning: assignment from incompatible pointer type [enabled by default]
a[count] = token;
^
e io non so perché
Ecco la mia funzione principale:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "support.h"
int main(int argc, char** argv) {
int i;
int count;
char** dictionary;
if (argc != 3) {
printf("need two arguments!\n");
exit(-1);
}
count = countTokens(argv[1]);
printf("there are %d tokens and strings\n", count);
dictionary = createArray(count);
readTokens(argv[1], dictionary);
printf("The dictionary:\n");
for (i = 0; i < count; ++i) {
printf("%s\n", dictionary[i]);
}
return 0;
}
e la mia funzione di creare array:
char* createArray(int count) {
char* a;
a = malloc(sizeof(char*) * count);
if (a == 0) {
fprintf(stderr, "memory allocation failed\n");
exit(1);
}
return a;
}
e il suo colpo di testa
char * createArray(int);
non ho idea di come ottenere questo di andare via. Ho provato a togliere e ad aggiungere asterischi e passare da un segno di uguale a due, ma non funziona. Studente di secondo anno, primo anno in C. Qualsiasi aiuto sarebbe apprezzato un milione di volte. Grazie!
'dictionary = createArray (count);' assegna un 'char *' a un 'char **'. –
Potresti aggiungere la definizione della funzione 'readTokens()'? – Nandyy
è qui sotto. questo è quello che mi ha davvero dato problemi.grazie mille per la risposta createArray e rispondendo così rapidamente :) –