Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

Reply
 
Thread Tools Display Modes
Old Oct 14th, 2011, 2:57 PM   #1
Drodrii
Newbie
 
Join Date: Oct 2011
Posts: 3
Rep Power: 0 Drodrii is on a distinguished road
request for member ‘.......’ in something not a structure or union

Hello People!

Im here to ask you guys a question, Im learning about programming in C and I can't compile due to this.


proyecto2mod.c: In function ‘agrega_nombre’:
proyecto2mod.c:43: warning: assignment from incompatible pointer type
proyecto2mod.c:60: warning: assignment from incompatible pointer type
proyecto2mod.c: In function ‘busca_cliente’:
proyecto2mod.c:84: warning: assignment from incompatible pointer type
proyecto2mod.c:88: error: request for member ‘nombre’ in something not a structure or union
proyecto2mod.c:91: error: request for member ‘nombre’ in something not a structure or union


I've got this code:


Ordena= Function that organizes names by alphabetic order.
agrega_nombre=Function that adds a client to the list.
busca=searches for the client.
C Syntax (Toggle Plain Text)
  1. //FUNCION PARA AGREGAR A UN CLIENTE A LA ESTRUCTURA Y AL ARCHIVO
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<string.h>
  5. #include "clientes.h"
  6. #include "ventas.h"
  7.  
  8. void agrega_nombre(ApLista1 inicio, ApLista1 aux,ApLista1 nodo, ApLista1 aux2)
  9. {
  10.  
  11. FILE *clientes;
  12. int pops=0, sanders=0;
  13. char aux_char[80];
  14.  
  15.  
  16. system("clear");
  17. clientes=fopen("clientes.txt", "a+");
  18. //fseek(clientes, 0L, SEEK_END);
  19.  
  20.  
  21.  
  22. if(nodo==NULL)
  23. {
  24. printf("No hay memoria\n");
  25. exit(1);
  26. }
  27. printf("NOMBRE:");
  28. scanf("%s", nodo->nombre);
  29. printf("DIRECCION:");
  30. scanf("%s",nodo->direccion);
  31. printf("NUMERO DE CLIENTE:");
  32. scanf("%d", &nodo->num_cliente);
  33.  
  34. if(inicio==NULL)
  35. {
  36. inicio=nodo;
  37. inicio->sig=NULL;
  38. inicio->ant=NULL;
  39. aux=inicio;
  40. }
  41. else
  42. {
  43. aux->sig=nodo;
  44. nodo->ant=aux;
  45. aux=nodo;
  46. nodo->sig=NULL;
  47. }
  48.  
  49. pops++;
  50.  
  51. aux2=inicio;
  52.  
  53. while(aux2!=NULL)
  54. {
  55. fprintf(clientes, "%s\n", aux2->nombre);
  56. fprintf(clientes, "%s\n", aux2->direccion);
  57. fprintf(clientes, "%d\n", aux2->num_cliente);
  58. puts(aux2->nombre);
  59. puts(aux2->direccion);
  60. aux2=aux2->sig;
  61. }
  62.  
  63.  
  64. aux2=aux;
  65. do
  66. {
  67. puts(aux2->nombre);
  68. aux2=aux2->ant;
  69. }
  70. while(aux2!=NULL);
  71. fclose(clientes);
  72. }
  73.  
  74. //Funcion Busqueda
  75. int busca_cliente (ApLista1 inicio, ApLista1 aux,ApLista1 nodo,ApLista1 *aux2,LISTA2 *inicioventas,LISTA2 *auxventas,LISTA2 *nodoventas,LISTA2 *aux2ventas)
  76. {
  77. char nombrebusqueda[80];
  78. int numclienteprueba;
  79. inicio=NULL;
  80. nodoventas=malloc(sizeof(LISTA2));
  81. auxventas=malloc(sizeof(LISTA2));
  82. printf("Dame el nombre del cliente a buscar\n");
  83. scanf("%s",nombrebusqueda);
  84. aux2=aux;
  85. while(aux2!=NULL)
  86. {
  87. printf("Entramos al While Aux2");
  88. if((strcmp(nombrebusqueda,aux2->nombre))==0)
  89. {
  90. printf("Encontramos BAM");
  91. puts(aux2->nombre);
  92. ////////Buscamos la venta
  93. aux2ventas=auxventas;
  94. while(aux2ventas!=NULL)
  95. {
  96. numclienteprueba=aux2ventas->num_clienteventas;
  97. if(numclienteprueba==aux2ventas->num_clienteventas)
  98. {
  99. printf("Wow");
  100. ///Aqui ensenamos las ventas que ha tenido el cliente y la informacion de la estructura.
  101. }
  102. aux2ventas=aux2ventas->sigvent;
  103. }
  104. ////////////
  105. }
  106. aux2=aux2->sig;
  107. }
  108. }
  109.  
  110. //Funcion Ordena
  111.  
  112.  
  113.  
  114. int ordena(ApLista1 inicio, ApLista1 aux,ApLista1 nodo,ApLista1 *aux2)
  115. {
  116. char pruebaman[80],probaman[80];//nombres
  117. char pruebadireccion[150],probadireccion[150];//direccion
  118. int pruebanum_cliente,probanum_cliente;//numero de cliente
  119. aux2=aux;
  120. strcpy(pruebaman,aux2->nombre);
  121. strcpy(pruebadireccion,aux2->direccion);
  122. pruebanum_cliente=aux2->num_cliente;
  123. aux2=aux2->ant;
  124.  
  125. do
  126. {
  127.  
  128. strcpy(probaman,aux2->nombre);
  129.  
  130. if(pruebaman[0]<probaman[0])
  131. {
  132. strcpy(pruebaman,aux2->nombre);
  133. strcpy(pruebadireccion,aux2->direccion);
  134. pruebanum_cliente=aux2->num_cliente;
  135. aux2=aux2->sig;
  136. strcpy(aux2->nombre,probaman);
  137. strcpy(aux2->direccion,probadireccion);
  138. probanum_cliente=aux2->num_cliente;
  139. }
  140. strcpy(pruebaman,aux2->nombre);
  141. strcpy(pruebadireccion,aux2->direccion);
  142. pruebanum_cliente=aux2->num_cliente;
  143.  
  144. aux2=aux2->ant;
  145.  
  146.  
  147. printf("Ciclo\n\n");
  148.  
  149. }
  150. while(aux2!=NULL);
  151. aux2=aux;
  152. strcpy(pruebaman,aux2->nombre);
  153. aux2=aux2->ant;
  154. strcpy(probaman,aux2->nombre);
  155. if(pruebaman[0]<probaman[0])
  156. ordena(inicio,aux,nodo,aux2);
  157. }
This is my list:
C Syntax (Toggle Plain Text)
  1. #include<stdio.h>
  2. struct clientes{
  3. char nombre[80];
  4. char direccion[150];
  5. int num_cliente;
  6. struct cliente*sig;
  7. struct clientes *ant;
  8. struct ventas *vent;
  9. }LISTA1;
  10. typedef struct clientes *ApLista1;

And this is the other MAIN file.
C Syntax (Toggle Plain Text)
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #include "clientes.h"
  5. #include "ventas.h"
  6. extern void agrega_nombre(ApLista1 inicio, ApLista1 aux,ApLista1 nodo, ApLista1 aux2);
  7. extern int busca_cliente(ApLista1 inicio, ApLista1 aux,ApLista1 nodo, ApLista1 aux2,LISTA2 *inicioventas,LISTA2 *auxventas,LISTA2 *nodoventas,LISTA2 *aux2ventas);
  8. extern int ordena(ApLista1 inicio, ApLista1 aux,ApLista1 nodo,ApLista1 *aux2);
  9. int main(void)
  10. {
  11. int menu=0;
  12.  
  13. //LISTA1 *aux2,*nodo;
  14. ApLista1 inicio, aux, nodo, aux2;
  15. LISTA2 *inicioventas, *auxventas,*nodoventas, *aux2ventas;
  16.  
  17. inicio=NULL;
  18. nodo=malloc(sizeof(LISTA1));
  19. aux=malloc(sizeof(LISTA1));
  20.  
  21. system("clear");
  22. while(menu!='6')
  23. {
  24. //funcion void carga_datos();
  25. printf("TIENDA DEPARTAMENTAL\n\n\n");
  26. printf("1. Agregar a un Cliente.\n2. Agregar una venta.\n3. Buscar Cliente. \n4. Borrar Cliente. \n5. Borrar una venta. \n6. Salir.");
  27. printf("\n\nElige una opcion: ");
  28. scanf("%d", &menu);
  29. switch(menu)
  30. {
  31. case 1:
  32. system("clear");
  33. printf("opcion1\n");
  34.  
  35. agrega_nombre(inicio, aux,nodo, aux2);
  36. menu=0;
  37. break;
  38. case 2:
  39. system("clear");
  40. printf("opcion2\n");
  41.  
  42. ///lo mismo que agrega_cliente pero utilizando la lista de ventas.
  43. menu=0;
  44. break;
  45. case 3:
  46. system("clear");
  47. printf("opcion3\n");
  48. busca_cliente(inicio,aux,nodo,aux2,inicioventas, auxventas, nodoventas, aux2ventas);
  49. menu=0;
  50. break;
  51. case 4:
  52. system("clear");
  53. printf("opcion4\n");
  54. //borra_cliente(inicio,aux,nodo,aux2,inicioventas, auxventas, nodoventas, aux2ventas);
  55. menu=0;
  56. break;//
  57. case 5:
  58. system("clear");
  59. printf("opcion5\n");
  60. //Lo Mismo que borra cliente pero en la lista de ventas solamente.
  61. menu=0;
  62. break;
  63. case 6:
  64. system("clear");
  65. printf("Adios!\n");
  66. exit(1);
  67. menu=0;
  68. break;
  69. }
  70. }
  71. }

It be awesome if you guys could help me and tell my why is the error happening or explain to me what Im doing wrong.


Best wishes for everyone!

Last edited by titaniumdecoy; Oct 14th, 2011 at 7:48 PM. Reason: Added syntax highlighting
Drodrii is offline   Reply With Quote
Old Oct 14th, 2011, 3:16 PM   #2
sixstringartist
Programming Guru

 
Join Date: Jun 2005
Posts: 1,326
Rep Power: 11 sixstringartist will become famous soon enough
Re: request for member ‘.......’ in something not a structure or union

A quick look, it seems like you are assigning an ApLista1 to a APLista1 *

C Syntax (Toggle Plain Text)
  1. int busca_cliente (ApLista1 inicio, ApLista1 aux,ApLista1 nodo,ApLista1 *aux2,LISTA2 *inicioventas,LISTA2 *auxventas,LISTA2 *nodoventas,LISTA2 *aux2ventas)
  2. {
  3. .
  4. .
  5. .
  6. aux2=aux;
  7. ...
  8. if((strcmp(nombrebusqueda,aux2->nombre))==0)
  9. ...
  10. puts(aux2->nombre);
  11. ...
sixstringartist is offline   Reply With Quote
Reply

Bookmarks

Tags
memory lists pointers

« Previous Thread in Forum | Next Thread in Forum »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
.htaccess redirect that preserves REQUEST data? pythonscript Other Web Development Languages 0 Jul 25th, 2011 7:14 PM
code structure lapta Delphi 1 Dec 27th, 2010 9:19 AM
Initializing a structure with an array in it RyanR C 1 Nov 11th, 2009 1:30 AM
Determine when client socket request has been accepted. hoffmandirt Java 8 Oct 6th, 2006 9:50 AM
Masm rsnd Assembly 4 May 20th, 2006 9:05 PM




DaniWeb IT Discussion Community
All times are GMT -5. The time now is 5:49 AM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC