L'obiettivo del mio programma è quello di leggere un file e generare la parola con le apparizioni massime, nonché il numero di aspetti. Ma sto avendo problemi con malloc
e la sintassi di esso. Questa è la struttura che malloc
si riferisce a:Come si usa malloc per allocare memoria per una struttura?
struct Word_setup {
char word[max_length];
int count;
};
Questa sezione del mio principale mi ha aiutato a scoprire che questo è stato il mio errore:
printf("Pre-Allocation Test");
struct Word_setup *phrase;
phrase = (struct Word_setup *) malloc(SIZE);
if (phrase == NULL)
{printf("Failure allocating memory"); return 0;}
Mi sembra di stampare, Pre-Allocation Test
, e poi congela. Come ho detto prima, non sono chiaro come risolvere questo problema, ma l'ho isolato.
* Incase ti stai chiedendo cosa SIZE
è:
#define SIZE (sizeof(phrase))
Edit:
Per curiosare versione del compilatore/OS/etc .: Windows 7 a 64 bit , GCC 4.9.2
Se desideri ulteriori informazioni su questo fammelo sapere.
'SIZE # define (sizeof (* frase))' – BLUEPIXY
[In C non si dovrebbe lanciare il risultato di 'malloc'] (http: // StackOverflow .com/questions/605845/do-i-cast-the-result-of-malloc/605858 # 605858) –
Vale veramente la pena usare 'type * ptr = malloc (sizeof (* ptr));' così che tu possa ' t cadere in questo tipo di errore anche se si cambia 'type'. – edmz