Δημοσιεύτηκε: 27 Ιούλ 2011, 20:13
από Tasudo
migf1 έχεις δίκιο,πολύς πονοκέφαλος...
έκανα κάποιες αλλαγές αλλα πλέον αντιμετωπίζω πρόβλημα πάλι με την μνήμη :(

Κώδικας: Επιλογή όλων


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

#define WORDSIZE 20
#define MAXWORDS 5


typedef struct {
char word[MAXWORDS]; /* metabliti xaraktiron*/
char digits[MAXWORDS]; /* metabliti psifion*/
} infoT;



char* new_string(char input_word[MAXWORDS],int number);

int main (int argc, char *argv[]) {

infoT pairs[MAXWORDS];

char format_str[20];
int numwords;
int i;


/* initialize pairs*/
numwords = 0;
sprintf(format_str,"%%%ds",WORDSIZE-1);

do {
printf("Enter number of words: "); /* Minima eisagogis arithmou lekseon*/
scanf("%d", &numwords); /* Eisagogi arithmou lekseon apo to pliktrologio*/
if ( (numwords < 0) || (numwords > MAXWORDS) ) /* Elegxos sostis eisagogis arithmou lekseon*/
printf("Wrong number input!\n");

}while ( (numwords < 0) || (numwords > MAXWORDS) );


for (i=0; i<numwords; i++) {
pairs[i] = (infoT*)malloc(sizeof(infoT)*MAXWORDS); /* Dunamiki desmeusi mnimis gia numword pairs*/


if ( pairs == NULL ) {
printf("Memory allocation error\n");
return (1);
}
}

for (i=0; i<numwords; i++) {
printf("Enter word: \n"); /* Minima eisagogis leksis*/
scanf(format_str,pairs[i].word); /* Eisagogi leksis apo to pliktrologio*/


}





printf("END\n");

return 0;
}



Κατά το compiling o compiler εμφανίζει error: incompatible types when assigning to type ‘infoT’ from type ‘struct infoT * -- δηλαδή τι τύπους δεδομένων μπερδεύω???Help!!!
το οποίο αφορά την δέσμευση μνήμης.Που θα πει οτι ακόμα δεν έχω καταλάβει πως μπορώ να δεσμεύσω δυναμικά μνήμη
σε δομές δεδομένων.


Όσο για το κόλπο που λες με την format_str το έχω χρησιμοποιήσει και άλλες φορές και έχει λειτουργήσει(i think)