Strcpy с/без '\0' в cLinux

Ответить
Anonymous
 Strcpy с/без '\0' в c

Сообщение Anonymous »

При попытке скопировать строку с помощью strcpy следующий код получит тот же результат на выходе. Кажется, "" совсем не обязательно для скопированного "" строка для работы.

Код: Выделить всё

int main()
{
const char *s = "this is string";

char *hello = malloc(strlen(s) + 1);
strcpy(hello, s);

char *world = malloc(strlen(s));
strcpy(world, s);

printf("Hello: %s\n", hello);
printf("World: %s\n", world);

return 0;
}
Вот результат:

Код: Выделить всё

Hello: this is string
World: this is string
Я знал "" добавляет "" нулевой терминатор, но почему оба "

Код: Выделить всё

hello" и "world
» можно успешно скопировать и использовать как обычную строку «char *»?

Подробнее здесь: https://stackoverflow.com/questions/798 ... out-0-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»