
char **buf;
Όσοι θέλουν να δοκιμάσουν μόνοι τους μην δείτε τον κώδικα. Μην αντιγράφετε σας παρακαλώ!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 10
#define M 10
int main(void) {
char sent[100] = "this is sparta";
char **buf;
char *buf2;
int i, j, flag;
buf = (char **)malloc(N*sizeof(char *));
for(i=0; i<N; i++) {
buf[i] = (char *)malloc(M*sizeof(char));
}
if(buf==NULL) {
printf("Error in allocating space!\n");
exit(1);
}
buf[0] = strtok(sent," ");
for(i=1; i<3; i++){
buf[i] = strtok(NULL," ");
}
for(i=0; i<N; i++){
printf("buf[%d]: %s\n", i, buf[i]);
}
return 0;
}
linuxs έγραψε:Όταν έχουμε ορίσεικαι κάνουμε με malloc έναν διδιάστατο πίνακα το buf[0] δεν είναι char *?
- Κώδικας: Επιλογή όλων
char **buf;
Παραθέτω και τον κώδικά μου έτσι στα γρήγορα...αλλα κάτι δεν πάει καλά!
while (1){
buf[flag] = strtok(NULL," ");
flag++;
}
register int i=1;
buf[0] = strtok(sent," ");
while ( i < N && (buf[i] = strtok(NULL," ")) != NULL )
i++;
linuxs έγραψε:
[snip]
αλλα το θέμα είναι οτι μπορώ να κάνω χίλιες αλλαγές. Η είσοδος απο που θα είναι? Απλά να τα εκτυπώνει ανάποδα θέλεις? :/ Αν μπορείς γίνε λίγο πιο συγκεκριμένος1thx
migf1 έγραψε:(i=1
migf1 έγραψε:linuxs έγραψε:Όταν έχουμε ορίσεικαι κάνουμε με malloc έναν διδιάστατο πίνακα το buf[0] δεν είναι char *?
- Κώδικας: Επιλογή όλων
char **buf;
Παραθέτω και τον κώδικά μου έτσι στα γρήγορα...αλλα κάτι δεν πάει καλά!
Ναι, αλλά είναι λίγο μπέρδεμα. Γιατί δεν το δηλώνεις: char buf[N][M];
Επίσης, το...
- Κώδικας: Επιλογή όλων
while (1){
buf[flag] = strtok(NULL," ");
flag++;
}
δεν σταματάει ποτέ!
Υποθέτω ήθελες να το γράψεις κάπως έτσι:
- Κώδικας: Επιλογή όλων
register int i=1;
buf[0] = strtok(sent," ");
while ( i < N && (buf[i] = strtok(NULL," ")) != NULL )
i++;