Newsgroup: it.comp.lang.c
Titolo: [help] puntatore ad array bidimensionale di char....

Salve a tutti,
credo di aver fatto del gran casino tra array e puntatori ad array:
http://phpfi.com/56208
perche' il confronto che faccio alla riga 46 non gli piace? Confronto il 
puntatore alla prima colonna di ogni riga con un puntatore ad un vettore di 
char....
aiutoooo :-)
Dade
P.S.: Consigli e critiche sul codice sono sempre ben accetti ;) 


perche' hai messo le & ?
(strcmp(&pTk[i][0],&word[0])
penso a te interessi il contenuto di pTk[i][0] e di word[0], che te 
frega in questo caso del valore del puntatore (cioe' a quale locazione 
di memoria punta) ?
io avrei fatto:
(strcmp(pTk[i][0],word[0])
ciao
	MaX

 MaX
Anche inizialmente ho fatto come da te suggerito, ma vc++ risponde cosi':
xxx.cpp(296) : error C2109: subscript requires array or pointer type
xxx.cpp(296) : error C2664: 'strcmp' : cannot convert parameter 1 from 
'char' to 'const char *'
        Conversion from integral type to pointer type requires 
reinterpret_cast, C-style cast or function-style cast
che mi sembra di capire che lui voglia un puntatore a un const char... cosi' 
ho provato passandoli l'indirizzo (come su 
http://phpfi.com/56208
) ma 
continua a non andare...
aiutooooo
Ciao e grazie
Dade 

 char....
int OpenDK(char *srcfilename)
{
    FILE *fsrc;
	char riga[MAX_LENGHT];
    char *parola;
	char *MyTK=(char *) malloc(0 * MAX_LENGHT); ??????
Ti allochi un'area di memoria di 0 bytes?  Per farci cosa?
La cosa peggiore e' che alla riga 26 passi questo puntatore (che NON
e' NULL) ad una funzione e confronti un valore casuale della memoria
con qualcosa che e' (o dovrebbe essere) sensato.
int CaricaTkDistinti(char *pTk,int indice, char word[MAX_SIZE])
{
	int i;
	int present=0;
	for (i=0; i<indice; i++){
		if((strcmp(&pTk[i][0],&word[0]))==0){ ????
La funzione strcmp() prende in inpur due puntatori a char, pTk e
word sono puntatori a char, se vuoi confrontare due stringhe (la
prima a partire da un certo indice) inutilie complicarsi la vita:
strcmp(pTk +i, word);
funziona.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 C:\>iao Angelo
grazie 1000 Angelo
ciao
Dade 

 ovviare? char *MyTk=NULL? ha senso questa cosa?
I puntatori (a mio avviso) dovrebbero essere sempre essere
inizializzati a NULL. Nel tuo caso, una simile inizializzazione
dovrebbe far scoppiare il programma :-)
Non ho ben capito cosa vuoi fare, pertanto non so dirti come
proseguire.


 ha scritto nel messaggio 
news:424d0...@x-privat.org...
Ho provato a modificare il codice: 
http://phpfi.com/56251
ora ottengo che al primo strcpy mi trovo un carattere porcheria + la mia 
word su pTk, mentre, al secondo passaggio mi restituisce un access violation 
nello strcmp...
Capisco che l'access violation e' dovuto a quel carattere che non c'entra 
nulla in prima posizione di pTk, ma non capisco perche' la strcpy non inizia 
a scrivere a pTk[0][0] ma a pTk[0][1] lasciando dentro quella porcheria...
Grazie a tutti
Dade

 proseguire.
ghghg ti spiego sperando in un tuo aiuto :-)
Praticamente devo leggere delle singole parole da 1 o + files (ho gia' una 
funzione che cicla tutti i files e richiama, per ogni file presente nella 
dir OpenDK) e caricarle in un vettore (che diventa array di char vista la 
mancanza di un vettore di stringhe). La particolarita' di questo vettore e' 
che non deve avere parole doppie:
questo e' corretto:
pTk[0]="casa"
pTk[1]="auto"
pTk[2]="viaggio"
questo no:
pTk[0]="casa"
pTk[1]="casa"
pTk[2]="auto"
...
spero di esser stato piu' chiaro questa volta... :)
ciao
Dade 

 ha scritto nel messaggio


 proseguire.
ghghg ti spiego sperando in un tuo aiuto :-)


 da 1 o + files (ho gia' una 
Senti ti spalo via un po' di immnodizia dalla mia casella di posta,
mandami il programma completo di main(), uno o piu' file da
leggere e il risultato corretto e ci do un'occhiata piu' tardi.
Ora non posso...
Spero non siano 20 Mb, perche', anche buttando via l'immondizia,
di spazio ne ho proprio poco.
