cannot convert from ´void *´ to ´char *´
01/06/2006
0
Por favor, leia as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum, em especial o item 1.e[/color:cd50f70243][/quote:cd50f70243]to com esse sguinte codigo pessoal
#include <stdio.h> include <stdlib.h> include <string.h> // // retorna != 0 se o valor passado // e´ uma vogal // int vogal(char c) { char *v="AaEeIiOoUu"; while(*v) if(*v++==c) return true; return false; } // // detecta as sequencias de nao-vogais // e defaz as trocas // void troca(char *msg, int *i) { int j, t; char aux; j=*i; t=0; while(msg[j]&&!vogal(msg[j++])) t++; switch(t) { case 2: // 2 nao-vogais contiguas aux=msg[*i]; msg[*i]=msg[*i+1]; msg[*i+1]=aux; (*i)+=2; break; case 3: // 3 nao-vogais contiguas aux=msg[*i]; msg[*i]=msg[*i+2]; msg[*i+2]=aux; (*i)+=3; break; case 4: // 4 nao-vogais contiguas aux=msg[*i]; msg[*i]=msg[*i+3]; msg[*i+3]=aux; aux=msg[*i+1]; msg[*i+1]=msg[*i+2]; msg[*i+2]=aux; (*i)+=4; break; } } void main() { int k, j, t; char aux, *msg; msg=malloc(80); printf("Digite a mensagem codificada:\n>> "); gets(msg); t=strlen(msg); k=0; j=t-1; // reverte a string... while(j>k) { aux=msg[k]; msg[k]=msg[j]; msg[j]=aux; k++; j--; } // desfaz as trocas nao-vogais... for(k=0; k<t; k++) troca(msg, &k); printf("\nMensagem decodificada:\n>> ¬s", msg); // pause getch(); }
dah sempre esse erro maldito
error C2440: ´=´ : cannot convert from ´void *´ to ´char *´
Conversion from ´void*´ to pointer to non-´void´ requires an explicit cast
Alguem sabe o q devo modificar no codigo jah foi um sacrificio eu fazer ainda dar esses erros num sei mais em q mecher.
[color=darkred:cd50f70243][/color:cd50f70243]
Feswood
Posts
01/06/2006
Feswood
01/06/2006
Massuda
Para fazer isso explicitamente, escreva...
msg = (char*) malloc(80);
01/06/2006
Feswood
Obrigado pela ajuda tb cara eu num penssei nisso :D , mais esse código está feito dinamicamente ou estaticamente?? essa eh outra duvida q tenho pq meu irmão fla q tah dinamicamente, meus colegas da facu flam q estah estaticamente afinal tá o q? dinamica ou estatica?
01/06/2006
Massuda
No caso, msg está sendo alocada dinamicamente usando malloc(). Uma alocação estática seria...
char msg[80];
Aliás, percebi outro problema... sempre que você aloca memória com malloc(), não se esqueça de liberar a memória alocada usando free(). No caso, o problema não é grave porque você aloca uma única vez memória e depois o programa termina (o Windows gentilmente irá liberar a memória que você alocou quando o programa termina), mas imagine essa alocação dentro de uma função executada milhares de vezes.
01/06/2006
Feswood
01/06/2006
Feswood
Aguardo respostas pois cheguei e estamos tentando porém sempre dá varios erros por favor ajuda
01/06/2006
Massuda
01/06/2006
Feswood
02/06/2006
Massuda
struct: [url=http://ead1.eee.ufmg.br/cursos/C/aulas/cb10.html]clique aqui[/url]
sizeof: [url=http://ead1.eee.ufmg.br/cursos/C/aulas/cb50.html]clique aqui[/url]
Esses links são trechos de uma excelente apostila de C do curso de Engenharia Elétrica da UFMG [url=http://ead1.eee.ufmg.br/cursos/C/c.html]cliqeu aqui[/url].
Clique aqui para fazer login e interagir na Comunidade :)