Ir ao conteúdo

Duvidas sobre copia strings para ponteiro de strings (strcpy)


Bronislaw

Posts recomendados

Postado

Pessoal tem um exercicio para fazer da faculdade, aparentemente sei fazer ele meio tranquilo, o problema é que estou com uma duvida logo no inicio, para copiar uma string com nome de buffer para um ponteiro *frase1.

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

#include <ctype.h>

#include <conio.h>

main()

{

char buffer[1000];

char *frase1;

printf ("Informe a primeira frase: ");

gets (buffer);

frase1 = (char*) malloc(strlen(buffer)*sizeof(char));

if (frase1 == "NULL")

{

puts("Nao tem memoria, saindo...");

exit (-1);

}

strcpy(*frase1,buffer);

printf ("A frase é %s", *frase1);

}

Tento fazer isso mas da erro, tiro o * e da erro também, e para copiar normal sem ser ponteiro é esse comando mesmo, só que não aprendi como faz para copiar para um ponteiro.

Alguem tem alguma ideia de como deve ser feito?

Obrigado pessoal.

Postado

Pequenos erros de sintaxe em:

strcpy(*frase1,buffer);
printf ("A frase é %s", *frase1);

strcpy recebe como parâmetro dois ponteiros para char, portanto você deve retirar o asterisco de frase1:

strcpy(frase1,buffer);

O %s em um printf procura um ponteiro para char, também. Logo, retire o asterisco:

printf ("A frase é %s", frase1);

Abraço, espero ter ajudado.

Postado

Opa ajudou sim obrigadão, sempre fico na duvida entre esses * é complicado.

Mas na verdade descobrir o que estava errado o malloc, não coloquei o terminador nulo.

Eu estava fazendo.

frase1 = (char*) malloc(strlen(buffer)*sizeof(char));

Quando na verdade ele juntava mas não tinha o terminador nulo, dando erro no programa mesmo e sem acusar erro no compilador.

O certo é:

frase1 = (char*) malloc((strlen(buffer)+1)*sizeof(char));

Agora funcionou sem da erro e claro o * que também estava errado ehheehe, é que eu testei com e zem o * e deu erro do mesmo jeito, depois que eu descobrir isso.

Mas obrigadão pela ajuda.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!