>> DAVID J. Malan: Entón, verifícase que copiar unha cadea non é tan
sinxelo que copiar un primitivo, como un int ou un float.
Ao final, debaixo do capó unha cadea é un carácteres de secuencia.
Entón, copiando unha cadea, por tanto, ten a involucrar copiar toda esa secuencia de
caracteres.
>> Imos volver a nosa atención para que última implantación e arrincar esta
liña, corda t é igual a s, o que claramente non era suficiente.
Imos substituílo por unha liña que parece, ao contrario, como esta.
Cordas t recibe malloc de lonxitude da corda de s e 1 veces o tamaño dun caracter.
>> Agora hai cita algo vai en nesa liña de código.
En primeiro lugar, malloc, abreviación de memoria concesión, e o
función fai exactamente iso.
Dado un número enteiro, el retorna a vostede o dirección dun bloque de memoria de
que moitos bytes.
Mentres tanto, a lonxitude da corda de s máis 1 pretende indicar que queremos como
moitos bytes como s xa ocupa, incluíndo o seu terminador nulo, o
barra invertida 0 ao final dunha cadea.
>> Mentres tanto, eu non me lembro, necesariamente, quão grande é un char é que, aínda
aínda que na maioría dos sistemas é simplemente unha byte, entón eu vou chamar tamaño do char para
descubrir dinamicamente como gran un carácter individual é.
Xa multiplicados xuntos, eu volver número total de bytes que eu teño.
>> Pero o que se malloc non devolver a memoria que necesitamos?
É mellor eu comprobar a que os seguintes.
Se t é igual a null, entón eu vou primeiro para s libres, a memoria de retorno por get
cadea, e entón eu vou voltar 1, para referirse a erro.
>> Pero, se está todo ben, eu vou seguir usar un loop de catro e iterado
como segue.
Para int i obter 0, n é igual a lonxitude da corda de s.
Vou facelo, sempre que i é inferior ou igual a n, de xeito que eu
iteración través e incluíndo a carácter de terminación nula en s.
>> E en cada iteración, estou indo a incrementar i.
Mentres tanto, dentro dese loop, copiar s do i-th en carácter de t i-th
localización, só tes que facer t soporte i recibe soporte s i.
>> Imos agora gardar, compilar e executar este novo programa.
Facer copia de copia 1 punto barra 1.
E eu vou dicir algo así como Ola en todas as letras minúsculas.
E, por sorte, esta vez a miña orixinal permanece inalterado.
Ola en todas as letras minúsculas.
Pero a copia é, de feito, feito.