Guest User

Untitled

a guest
Jan 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.75 KB | None | 0 0
  1. #include <stddef.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. char *copyString(char *);//Declaração de prototipo de função
  6.  
  7. char *copyString(char *source){
  8.     int count=0; char *destination;
  9.     while( (*(source+sizeof(char)*count))!='\0' ){
  10.         destination = realloc(destination, (count+1)*sizeof(char) );
  11.         (*(destination+sizeof(char)*count)) = (*(source+sizeof(char)*count));//<---Faz o programa quebrar quando copyArrayString chama esta função! =3
  12.         count++;
  13.     }
  14.    
  15.     (*(destination+sizeof(char)*count)) = '\0';//<--Coloca o caracter 'nulo' no final da string
  16.     return destination;
  17. }
  18.  
  19.  
  20. char **copyArrayString(char **srcArr){//NAO ESTA FUNCIONANDO
  21.      int count=0; char **destArr;
  22.      while( srcArr!=NULL ){
  23.          destArr = realloc(destArr, sizeof(char*)*2 );
  24.          *destArr = copyString( *srcArr );
  25.          destArr+=count;
  26.          srcArr+=count;
  27.          count++;
  28.      }
  29.      destArr-=(count-1);
  30.      srcArr-=(count-1);
  31.      
  32.      return destArr;
  33. }
  34.  
  35.  
  36. void testBlock1(){
  37.     char *src, *dest;
  38.     src="Medicamento Generico";
  39.     dest = copyString(src);
  40.     printf("nome: %s", dest);
  41.    
  42.     free(dest);
  43.     dest = NULL;
  44.     getchar(); fflush(stdin);
  45. }
  46.  
  47.  
  48. void testBlock2(){
  49.     char **dest;
  50.     dest = copyArrayString((char *[5]){"Felipe", "Melo", "Ferraz", "Oliveira", NULL});//Nulo é setado automaticamente
  51.     printf("dest[0]: %s\n", *(dest+0));
  52.     printf("dest[1]: %s\n", *(dest+1));
  53.     printf("dest[2]: %s\n", *(dest+2));
  54.     printf("dest[3]: %s\n", *(dest+3));
  55.     printf("dest[4]: %s", *(dest+4));
  56.     getchar(); fflush(stdin);  
  57.      
  58. }
  59.  
  60.  
  61. int main(int argsc, char **argsv){
  62.     testBlock1();
  63.     //testBlock2();<---Nao funcionando ainda :<
  64.     return 0;
  65. }
Add Comment
Please, Sign In to add comment