Tengo una consulta sobre el siguiente codigo:
-   
- #include<stdio.h> 
- #include<conio.h> 
- #include<stdlib.h> 
- #include<string.h> 
- #define TAM 5 
-   
-   
- typedef struct Tipo_Cliente{ 
-     char nombre[50]; 
-     char cuit[11]; 
-     char cp[11]; 
- }; 
-   
- int alta_opc() 
- { 
-   
-     int opc; 
-     printf("ALTAS:\n------\n"); 
-     printf("1-Cliente\n"); 
-     printf("2-Articulo\n"); 
-     printf("3-Compra\n"); 
-     printf("4-Salir\n>"); 
-     scanf("%d",&opc); 
-   
-     return opc; 
- } 
-   
-   
-   
- int main() 
- { 
-   
-     int cant_cli=0,cant_art=0,cant_com=0,aux; 
-     aux=TAM; /*TAM es un define*/ 
-   
-     char cadena[20]; 
-      
-     Tipo_Cliente* clientes; 
-      
-     int opc=alta_opc(); 
-     gets(cadena);   <--------------------- en este punto no me toma la funcion gets 
-   
-   
-   
-   
-   
-                         printf ("ALTA DE CLIENTE\n"); 
-                         cant_cli++; 
-                         clientes=(Tipo_Cliente*)malloc(sizeof(Tipo_Cliente)*aux); 
-                         if (cant_cli==aux) 
-                         { 
-                             aux+=5; 
-                              clientes=(Tipo_Cliente*)realloc(clientes,sizeof(Tipo_Cliente)*aux); 
-                         } 
-     return 0; 
- } 
-   
El problema es que luego de llamar a la funcion alta_opc, no me toma el gets, sin llamar a la funcion si funciona, y poniendo scanf tambien!
En que estoy fallando?? muchas gracias.