DAVID J. Malan: Així que resulta que copiar una cadena no és tan senzill com copiar un primitiu, com un int o float. Després de tot, sota la campana d'una cadena és una seqüència de caràcters. Per tant la còpia d'una cadena, per tant, ha de involucrar copiar tota aquesta seqüència de personatges. Centrarem la nostra atenció de nou a la última aplicació i arrencar aquest línia, cadena t és igual a s, que clarament no era suficient. Anem a substituir amb una línia que sembla, en canvi, com aquest. Cadena t aconsegueix malloc de longitud de la cadena de S Plus 1 vegades la mida d'un char. Ara hi ha pressupost una mica d'anar en aquesta línia de codi. En primer lloc, malloc, l'abreviatura de la memòria l'assignació i la funció fa precisament això. Donat un nombre enter, es torna a vostè el direcció d'un tros de memòria de que molts bytes. Mentrestant, la longitud de la cadena de s més 1 pretén indicar que volem que tants bytes com s ja ocupa, inclòs el seu terminador nul, el barra invertida 0 al final d'una cadena. Mentrestant, no me'n recordo necessàriament què tan gran és un char, fins i tot encara que en la majoria dels sistemes és simplement 1 byte, així que vaig a trucar a mida de char a esbrinar dinàmicament gran un caràcter individual és. Un cop multiplicats entre si, que torni la nombre total de bytes que necessito. Però el que si malloc no tornar la memòria que necessitem? Serà millor que comprovo que de la següent manera. Si t és igual a null, llavors estic anant primer que s lliures, la memòria retornat per get cadena, i després em vaig a retorna 1, per indicar l'error. Però si tot està bé, vaig a procedir per utilitzar un bucle de quatre i iterar de la següent manera. Per int i obtenir 0, n és igual a la longitud de la cadena de s. Vaig a fer això sempre i quan i és menys de o igual a n de manera que jo iterar a través d'e incloent la caràcter de terminació null en si. I en cada iteració, estic incrementarà i. Mentrestant, dins d'aquest bucle, copiar s de l'i-èsim caràcter en la t i-th ubicació, només cal fer t suport i Obté s abraçadora i. Que més m'agradaria afegir-ne un addicional line al meu codi. En particular, perquè ara estic fent servir malloc, demanant la memòria, que és el meu la responsabilitat d'alliberar aquesta memòria quan he acabat amb ell, igual que ha d'alliberar la memòria que és que ens ha donat corda a aconseguir. Així que al final d'aquest programa, estic va a afegir una línia addicional per alliberar t abans de tornar 0 per indicar l'èxit. Ara anem a guardar, compilar i executar aquest nou programa. Fer còpia de còpia 1 punt slash 1. I vaig a dir una cosa així com hola en minúscules. I per sort, aquesta vegada la meva original roman sense canvis. hola en minúscules. Però la còpia és, de fet, amb majúscula.